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.

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

  1. 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 inicializa i en 1 y se ejecuta mientras i 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 mientras i sea menor o igual a 10.
  • En cada iteración, se imprime el valor de i y luego se incrementa i en 1.

  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 de day.
  • Cada caso en el switch corresponde a un día de la semana, y utilizamos break para salir del switch después de ejecutar el caso correspondiente.
  • El caso default maneja cualquier valor de day 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.

© Copyright 2024. Todos los derechos reservados