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.
- 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"
}
- Bucles
2.1. for
El bucle for se utiliza para iterar sobre una secuencia de elementos, como una lista o un rango.
Sintaxis:
Ejemplo:
2.2. while
El bucle while ejecuta un bloque de código mientras una condición sea verdadera.
Sintaxis:
Ejemplo:
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:
Ejemplo:
- 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:
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.
Curso de Programación Groovy
Módulo 1: Introducción a Groovy
Módulo 2: Sintaxis de Groovy y Características del Lenguaje
Módulo 3: Programación Orientada a Objetos en Groovy
Módulo 4: Características Avanzadas de Groovy
Módulo 5: Groovy en la Práctica
- Entrada/Salida de Archivos
- Trabajando con XML y JSON
- Acceso a Bases de Datos
- Desarrollo Web con Groovy
Módulo 6: Pruebas y Depuración
Módulo 7: Ecosistema y Herramientas de Groovy
- Herramienta de Construcción Gradle
- Framework de Pruebas Spock
- Framework Grails
- Otras Bibliotecas y Herramientas de Groovy
Módulo 8: Mejores Prácticas y Temas Avanzados
- Estilo de Código y Convenciones
- Optimización del Rendimiento
- Consideraciones de Seguridad
- Concurrencia en Groovy
