En esta sección, vamos a consolidar los conceptos aprendidos sobre el flujo de control en Objective-C mediante ejemplos prácticos. Revisaremos cómo utilizar sentencias condicionales, bucles y sentencias switch en diferentes escenarios.
- Sentencias Condicionales
Ejemplo 1: Verificación de Edad
Vamos a escribir un programa que verifique si una persona es mayor de edad.
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int age = 20; if (age >= 18) { NSLog(@"Eres mayor de edad."); } else { NSLog(@"Eres menor de edad."); } } return 0; }
Explicación:
- Declaramos una variable
age
y la inicializamos con el valor 20. - Utilizamos una sentencia
if
para verificar siage
es mayor o igual a 18. - Si la condición es verdadera, se imprime "Eres mayor de edad.".
- Si la condición es falsa, se imprime "Eres menor de edad.".
Ejemplo 2: Clasificación de Notas
Vamos a clasificar una nota en una escala de letras.
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int score = 85; if (score >= 90) { NSLog(@"A"); } else if (score >= 80) { NSLog(@"B"); } else if (score >= 70) { NSLog(@"C"); } else if (score >= 60) { NSLog(@"D"); } else { NSLog(@"F"); } } return 0; }
Explicación:
- Declaramos una variable
score
y la inicializamos con el valor 85. - Utilizamos una serie de sentencias
if-else if-else
para clasificar la nota en una escala de letras.
- Bucles
Ejemplo 1: Bucle for
Vamos a imprimir los números del 1 al 10.
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { for (int i = 1; i <= 10; i++) { NSLog(@"%d", i); } } return 0; }
Explicación:
- Utilizamos un bucle
for
que inicializai
en 1 y se ejecuta mientrasi
sea menor o igual a 10. - En cada iteración, se incrementa
i
en 1 y se imprime su valor.
Ejemplo 2: Bucle while
Vamos a imprimir los números del 1 al 10 utilizando un bucle while
.
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int i = 1; while (i <= 10) { NSLog(@"%d", i); i++; } } return 0; }
Explicación:
- Inicializamos
i
en 1. - Utilizamos un bucle
while
que se ejecuta mientrasi
sea menor o igual a 10. - En cada iteración, se imprime el valor de
i
y luego se incrementai
en 1.
- Sentencias Switch
Ejemplo: Días de la Semana
Vamos a escribir un programa que imprima el nombre del día de la semana basado en un número del 1 al 7.
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int day = 3; switch (day) { case 1: NSLog(@"Lunes"); break; case 2: NSLog(@"Martes"); break; case 3: NSLog(@"Miércoles"); break; case 4: NSLog(@"Jueves"); break; case 5: NSLog(@"Viernes"); break; case 6: NSLog(@"Sábado"); break; case 7: NSLog(@"Domingo"); break; default: NSLog(@"Número de día inválido"); break; } } return 0; }
Explicación:
- Declaramos una variable
day
y la inicializamos con el valor 3. - Utilizamos una sentencia
switch
para imprimir el nombre del día de la semana basado en el valor deday
. - Cada caso en el
switch
corresponde a un día de la semana, y utilizamosbreak
para salir delswitch
después de ejecutar el caso correspondiente. - El caso
default
maneja cualquier valor deday
que no esté entre 1 y 7.
Ejercicios Prácticos
Ejercicio 1: Números Pares
Escribe un programa que imprima todos los números pares del 1 al 20.
Solución:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { for (int i = 1; i <= 20; i++) { if (i % 2 == 0) { NSLog(@"%d", i); } } } return 0; }
Ejercicio 2: Calculadora Simple
Escribe un programa que tome dos números y un operador (+
, -
, *
, /
) y realice la operación correspondiente.
Solución:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int num1 = 10; int num2 = 5; char operator = '+'; switch (operator) { case '+': NSLog(@"Resultado: %d", num1 + num2); break; case '-': NSLog(@"Resultado: %d", num1 - num2); break; case '*': NSLog(@"Resultado: %d", num1 * num2); break; case '/': if (num2 != 0) { NSLog(@"Resultado: %d", num1 / num2); } else { NSLog(@"Error: División por cero"); } break; default: NSLog(@"Operador inválido"); break; } } return 0; }
Conclusión
En esta sección, hemos revisado cómo utilizar sentencias condicionales, bucles y sentencias switch en Objective-C mediante ejemplos prácticos. Estos conceptos son fundamentales para controlar el flujo de ejecución de un programa y son ampliamente utilizados en la programación diaria. Asegúrate de practicar estos ejemplos y ejercicios para consolidar tu comprensión antes de avanzar al siguiente módulo.
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