Les estructures de control són fonamentals en qualsevol llenguatge de programació, ja que permeten controlar el flux d'execució del codi. En aquest tema, explorarem les estructures de control més comunes en Groovy, incloent condicions, bucles i altres mecanismes per gestionar el flux del programa.
Continguts
Condicionals
if
, else if
, else
La instrucció if
s'utilitza per executar un bloc de codi si una condició és certa. Es pot complementar amb else if
i else
per gestionar múltiples condicions.
Sintaxi:
if (condició) { // codi a executar si la condició és certa } else if (altraCondició) { // codi a executar si l'altra condició és certa } else { // codi a executar si cap de les condicions anteriors és certa }
Exemple:
def x = 10 if (x > 0) { println("x és positiu") } else if (x < 0) { println("x és negatiu") } else { println("x és zero") }
switch
La instrucció switch
permet seleccionar una de moltes opcions basant-se en el valor d'una expressió.
Sintaxi:
switch (expressió) { case valor1: // codi a executar si expressió == valor1 break case valor2: // codi a executar si expressió == valor2 break default: // codi a executar si cap cas coincideix }
Exemple:
def dia = "dilluns" switch (dia) { case "dilluns": println("Avui és dilluns") break case "dimarts": println("Avui és dimarts") break default: println("No és ni dilluns ni dimarts") }
Bucles
for
El bucle for
s'utilitza per repetir un bloc de codi un nombre determinat de vegades.
Sintaxi:
Exemple:
for-in
Groovy també permet utilitzar una sintaxi simplificada per iterar sobre col·leccions.
Exemple:
while
El bucle while
repeteix un bloc de codi mentre una condició sigui certa.
Sintaxi:
Exemple:
do-while
El bucle do-while
és similar al while
, però la condició es comprova després d'executar el bloc de codi, garantint que el codi s'executi almenys una vegada.
Sintaxi:
Exemple:
Estructures de Control Addicionals
break
i continue
break
: S'utilitza per sortir d'un bucle abans que aquest acabi.continue
: S'utilitza per saltar a la següent iteració del bucle.
Exemple:
for (int i = 0; i < 10; i++) { if (i == 5) { break // surt del bucle quan i és 5 } println("Iteració: $i") } for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue // salta a la següent iteració si i és parell } println("Iteració: $i") }
Exercicis Pràctics
Exercici 1: Condicionals
Escriu un programa que demani a l'usuari un número i imprimeixi si el número és positiu, negatiu o zero.
Solució:
print "Introdueix un número: " def numero = System.console().readLine() as Integer if (numero > 0) { println("El número és positiu") } else if (numero < 0) { println("El número és negatiu") } else { println("El número és zero") }
Exercici 2: Bucles
Escriu un programa que imprimeixi els números del 1 al 10 utilitzant un bucle for
.
Solució:
Exercici 3: switch
Escriu un programa que demani a l'usuari un dia de la setmana i imprimeixi un missatge corresponent utilitzant switch
.
Solució:
print "Introdueix un dia de la setmana: " def dia = System.console().readLine() switch (dia.toLowerCase()) { case "dilluns": println("Avui és dilluns") break case "dimarts": println("Avui és dimarts") break case "dimecres": println("Avui és dimecres") break case "dijous": println("Avui és dijous") break case "divendres": println("Avui és divendres") break case "dissabte": println("Avui és dissabte") break case "diumenge": println("Avui és diumenge") break default: println("Dia no vàlid") }
Conclusió
En aquesta secció, hem après sobre les estructures de control en Groovy, incloent condicionals (if
, else if
, else
, switch
), bucles (for
, while
, do-while
) i instruccions addicionals (break
, continue
). Aquestes eines són essencials per controlar el flux del programa i escriure codi més dinàmic i flexible. Practica amb els exercicis proporcionats per consolidar els teus coneixements abans de passar al següent tema.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy