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
agey la inicializamos con el valor 20. - Utilizamos una sentencia
ifpara verificar siagees 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
scorey la inicializamos con el valor 85. - Utilizamos una serie de sentencias
if-else if-elsepara 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
forque inicializaien 1 y se ejecuta mientrasisea menor o igual a 10. - En cada iteración, se incrementa
ien 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
ien 1. - Utilizamos un bucle
whileque se ejecuta mientrasisea menor o igual a 10. - En cada iteración, se imprime el valor de
iy luego se incrementaien 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
dayy la inicializamos con el valor 3. - Utilizamos una sentencia
switchpara imprimir el nombre del día de la semana basado en el valor deday. - Cada caso en el
switchcorresponde a un día de la semana, y utilizamosbreakpara salir delswitchdespués de ejecutar el caso correspondiente. - El caso
defaultmaneja cualquier valor dedayque 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
