En este módulo, aprenderemos sobre las estructuras de control en Groovy, que son fundamentales para dirigir el flujo de ejecución de un programa. Las estructuras de control incluyen condicionales, bucles y estructuras de control de excepciones.

  1. Condicionales

1.1. if, else if, else

La estructura if se utiliza para ejecutar un bloque de código solo si una condición es verdadera. Puedes encadenar múltiples condiciones usando else if y proporcionar un bloque de código alternativo con else.

Sintaxis:

if (condición) {
    // Bloque de código si la condición es verdadera
} else if (otraCondición) {
    // Bloque de código si la otra condición es verdadera
} else {
    // Bloque de código si ninguna condición es verdadera
}

Ejemplo:

def numero = 10

if (numero > 0) {
    println "El número es positivo"
} else if (numero < 0) {
    println "El número es negativo"
} else {
    println "El número es cero"
}

1.2. switch

La estructura switch es una alternativa a múltiples if-else y se utiliza para ejecutar diferentes bloques de código basados en el valor de una expresión.

Sintaxis:

switch (expresión) {
    case valor1:
        // Bloque de código para valor1
        break
    case valor2:
        // Bloque de código para valor2
        break
    default:
        // Bloque de código si ningún caso coincide
}

Ejemplo:

def dia = "Lunes"

switch (dia) {
    case "Lunes":
        println "Inicio de la semana"
        break
    case "Viernes":
        println "Fin de la semana laboral"
        break
    default:
        println "Día de la semana"
}

  1. Bucles

2.1. for

El bucle for se utiliza para iterar sobre una secuencia de elementos, como una lista o un rango.

Sintaxis:

for (elemento in colección) {
    // Bloque de código para cada elemento
}

Ejemplo:

def lista = [1, 2, 3, 4, 5]

for (numero in lista) {
    println numero
}

2.2. while

El bucle while ejecuta un bloque de código mientras una condición sea verdadera.

Sintaxis:

while (condición) {
    // Bloque de código mientras la condición sea verdadera
}

Ejemplo:

def contador = 0

while (contador < 5) {
    println "Contador: $contador"
    contador++
}

2.3. do-while

El bucle do-while es similar al while, pero garantiza que el bloque de código se ejecute al menos una vez.

Sintaxis:

do {
    // Bloque de código
} while (condición)

Ejemplo:

def contador = 0

do {
    println "Contador: $contador"
    contador++
} while (contador < 5)

  1. Estructuras de Control de Excepciones

3.1. try, catch, finally

Estas estructuras se utilizan para manejar excepciones y errores en el código.

Sintaxis:

try {
    // Bloque de código que puede lanzar una excepción
} catch (TipoDeExcepción e) {
    // Bloque de código para manejar la excepción
} finally {
    // Bloque de código que se ejecuta siempre, haya o no excepción
}

Ejemplo:

try {
    def resultado = 10 / 0
} catch (ArithmeticException e) {
    println "Error: División por cero"
} finally {
    println "Este bloque se ejecuta siempre"
}

Ejercicios Prácticos

Ejercicio 1: Condicionales

Escribe un script que determine si un número es par o impar.

Solución:

def numero = 7

if (numero % 2 == 0) {
    println "El número es par"
} else {
    println "El número es impar"
}

Ejercicio 2: Bucles

Escribe un script que imprima los números del 1 al 10 usando un bucle for.

Solución:

for (i in 1..10) {
    println i
}

Ejercicio 3: Manejo de Excepciones

Escribe un script que intente convertir una cadena a un número y maneje cualquier excepción que ocurra.

Solución:

def cadena = "123a"

try {
    def numero = cadena.toInteger()
    println "El número es $numero"
} catch (NumberFormatException e) {
    println "Error: No se puede convertir la cadena a un número"
}

Conclusión

En esta sección, hemos cubierto las estructuras de control en Groovy, incluyendo condicionales, bucles y manejo de excepciones. Estas estructuras son esenciales para controlar el flujo de ejecución de tus programas y manejar situaciones excepcionales de manera efectiva. Asegúrate de practicar los ejercicios para reforzar tu comprensión y estar preparado para el siguiente módulo.

© Copyright 2024. Todos los derechos reservados