En este tema, aprenderemos sobre los operadores y las expresiones en Objective-C. Los operadores son símbolos que le indican al compilador que realice operaciones específicas, y las expresiones son combinaciones de variables, constantes y operadores que se evalúan para producir un valor.
Tipos de Operadores
Objective-C soporta varios tipos de operadores, que se pueden clasificar en las siguientes categorías:
- Operadores Aritméticos
- Operadores Relacionales
- Operadores Lógicos
- Operadores de Asignación
- Operadores de Incremento y Decremento
- Operadores Bit a Bit
- Operadores de Condición
- Operadores Aritméticos
Los operadores aritméticos se utilizan para realizar operaciones matemáticas comunes.
Operador | Descripción | Ejemplo |
---|---|---|
+ |
Suma | a + b |
- |
Resta | a - b |
* |
Multiplicación | a * b |
/ |
División | a / b |
% |
Módulo (resto) | a % b |
Ejemplo:
int a = 10; int b = 3; int sum = a + b; // sum = 13 int diff = a - b; // diff = 7 int product = a * b; // product = 30 int quotient = a / b; // quotient = 3 int remainder = a % b; // remainder = 1
- Operadores Relacionales
Los operadores relacionales se utilizan para comparar dos valores.
Operador | Descripción | Ejemplo |
---|---|---|
== |
Igual a | a == b |
!= |
No igual a | a != b |
> |
Mayor que | a > b |
< |
Menor que | a < b |
>= |
Mayor o igual que | a >= b |
<= |
Menor o igual que | a <= b |
Ejemplo:
int a = 10; int b = 3; BOOL isEqual = (a == b); // isEqual = NO BOOL isNotEqual = (a != b); // isNotEqual = YES BOOL isGreater = (a > b); // isGreater = YES BOOL isLess = (a < b); // isLess = NO BOOL isGreaterOrEqual = (a >= b); // isGreaterOrEqual = YES BOOL isLessOrEqual = (a <= b); // isLessOrEqual = NO
- Operadores Lógicos
Los operadores lógicos se utilizan para combinar expresiones booleanas.
Operador | Descripción | Ejemplo |
---|---|---|
&& |
AND lógico | a && b |
` | ` | |
! |
NOT lógico | !a |
Ejemplo:
BOOL a = YES; BOOL b = NO; BOOL andResult = a && b; // andResult = NO BOOL orResult = a || b; // orResult = YES BOOL notResult = !a; // notResult = NO
- Operadores de Asignación
Los operadores de asignación se utilizan para asignar valores a las variables.
Operador | Descripción | Ejemplo |
---|---|---|
= |
Asignación | a = b |
+= |
Suma y asignación | a += b |
-= |
Resta y asignación | a -= b |
*= |
Multiplicación y asignación | a *= b |
/= |
División y asignación | a /= b |
%= |
Módulo y asignación | a %= b |
Ejemplo:
int a = 10; int b = 3; a += b; // a = 13 a -= b; // a = 10 a *= b; // a = 30 a /= b; // a = 10 a %= b; // a = 1
- Operadores de Incremento y Decremento
Estos operadores se utilizan para incrementar o decrementar el valor de una variable en uno.
Operador | Descripción | Ejemplo |
---|---|---|
++ |
Incremento | a++ o ++a |
-- |
Decremento | a-- o --a |
Ejemplo:
- Operadores Bit a Bit
Los operadores bit a bit se utilizan para realizar operaciones a nivel de bits.
Operador | Descripción | Ejemplo |
---|---|---|
& |
AND bit a bit | a & b |
` | ` | OR bit a bit |
^ |
XOR bit a bit | a ^ b |
~ |
NOT bit a bit | ~a |
<< |
Desplazamiento a la izquierda | a << b |
>> |
Desplazamiento a la derecha | a >> b |
Ejemplo:
int a = 5; // 0101 en binario int b = 3; // 0011 en binario int andResult = a & b; // 0001 en binario, 1 en decimal int orResult = a | b; // 0111 en binario, 7 en decimal int xorResult = a ^ b; // 0110 en binario, 6 en decimal int notResult = ~a; // 1010 en binario (complemento a 2), -6 en decimal int leftShift = a << 1; // 1010 en binario, 10 en decimal int rightShift = a >> 1; // 0010 en binario, 2 en decimal
- Operadores de Condición
El operador ternario es una forma abreviada de la sentencia if-else
.
Operador | Descripción | Ejemplo |
---|---|---|
? : |
Operador ternario | cond ? expr1 : expr2 |
Ejemplo:
Ejercicios Prácticos
Ejercicio 1: Operaciones Aritméticas
Escribe un programa que realice las siguientes operaciones aritméticas y muestre los resultados:
- Suma de 15 y 27
- Resta de 45 y 12
- Multiplicación de 7 y 8
- División de 56 entre 7
- Módulo de 29 entre 5
Solución:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int sum = 15 + 27; int diff = 45 - 12; int product = 7 * 8; int quotient = 56 / 7; int remainder = 29 % 5; NSLog(@"Suma: %d", sum); NSLog(@"Resta: %d", diff); NSLog(@"Multiplicación: %d", product); NSLog(@"División: %d", quotient); NSLog(@"Módulo: %d", remainder); } return 0; }
Ejercicio 2: Comparaciones y Lógica
Escribe un programa que compare dos números y muestre si son iguales, si el primero es mayor que el segundo, y si ambos son positivos.
Solución:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int a = 10; int b = 3; BOOL isEqual = (a == b); BOOL isGreater = (a > b); BOOL areBothPositive = (a > 0) && (b > 0); NSLog(@"¿Son iguales? %@", isEqual ? @"Sí" : @"No"); NSLog(@"¿Es el primero mayor que el segundo? %@", isGreater ? @"Sí" : @"No"); NSLog(@"¿Son ambos positivos? %@", areBothPositive ? @"Sí" : @"No"); } return 0; }
Ejercicio 3: Operador Ternario
Escribe un programa que determine si un número es par o impar utilizando el operador ternario.
Solución:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int number = 7; NSString *result = (number % 2 == 0) ? @"Par" : @"Impar"; NSLog(@"El número %d es %@", number, result); } return 0; }
Conclusión
En esta sección, hemos cubierto los operadores y las expresiones en Objective-C, incluyendo operadores aritméticos, relacionales, lógicos, de asignación, de incremento y decremento, bit a bit y de condición. También hemos visto ejemplos prácticos y ejercicios para reforzar estos conceptos. Con esta base, estarás preparado para manejar operaciones y comparaciones en tus programas de Objective-C. En el próximo módulo, exploraremos el flujo de control, que te permitirá tomar decisiones y repetir acciones en tu código.
Curso de Programación en Objective-C
Módulo 1: Introducción a Objective-C
- Introducción a Objective-C
- Configuración del Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Tipos de Datos y Variables
- Operadores y Expresiones
Módulo 2: Flujo de Control
Módulo 3: Funciones y Métodos
- Definición y Llamada de Funciones
- Parámetros de Función y Valores de Retorno
- Sintaxis de Métodos en Objective-C
- Métodos de Clase e Instancia
Módulo 4: Programación Orientada a Objetos
Módulo 5: Gestión de Memoria
- Introducción a la Gestión de Memoria
- Conteo Automático de Referencias (ARC)
- Retención y Liberación Manual
- Mejores Prácticas de Gestión de Memoria
Módulo 6: Temas Avanzados
Módulo 7: Trabajo con Datos
- Manejo de Archivos
- Serialización y Deserialización
- Conceptos Básicos de Redes
- Trabajo con JSON y XML