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:

  1. Operadores Aritméticos
  2. Operadores Relacionales
  3. Operadores Lógicos
  4. Operadores de Asignación
  5. Operadores de Incremento y Decremento
  6. Operadores Bit a Bit
  7. Operadores de Condición

  1. 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

  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

  1. 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

  1. 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

  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:

int a = 10;
a++; // a = 11
a--; // a = 10
++a; // a = 11
--a; // a = 10

  1. 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

  1. 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:

int a = 10;
int b = 3;
int max = (a > b) ? a : b; // max = 10

Ejercicios Prácticos

Ejercicio 1: Operaciones Aritméticas

Escribe un programa que realice las siguientes operaciones aritméticas y muestre los resultados:

  1. Suma de 15 y 27
  2. Resta de 45 y 12
  3. Multiplicación de 7 y 8
  4. División de 56 entre 7
  5. 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.

© Copyright 2024. Todos los derechos reservados