En aquest tema, aprendrem sobre els bucles i les iteracions en Scala. Els bucles són una part fonamental de qualsevol llenguatge de programació, ja que permeten executar un bloc de codi repetidament fins que es compleixi una condició específica. Scala ofereix diverses maneres de crear bucles, incloent-hi while, do-while i for. També explorarem les col·leccions i com iterar sobre elles.
Continguts
Bucles while
El bucle while executa un bloc de codi repetidament mentre una condició sigui certa.
Sintaxi
Exemple
Explicació:
- Inicialitzem
ia 0. - El bucle
whilecontinua executant-se mentreisigui menor que 5. - A cada iteració, imprimeix el valor de
ii després incrementaien 1.
Bucles do-while
El bucle do-while és similar al while, però garanteix que el bloc de codi s'executi almenys una vegada, ja que la condició es comprova després de l'execució del bloc.
Sintaxi
Exemple
Explicació:
- Inicialitzem
ja 0. - El bloc de codi dins del
dos'executa primer, imprimint el valor deji incrementant-lo en 1. - Després es comprova la condició
j < 5. Si és certa, el bucle es repeteix.
Bucles for
El bucle for en Scala és molt potent i flexible. Pot iterar sobre rangs, col·leccions i fins i tot utilitzar filtres.
Sintaxi bàsica
Exemple amb rang
Explicació:
- El bucle
foritera des de 1 fins a 5 (inclosos). - A cada iteració, imprimeix el valor de
i.
Exemple amb col·leccions
val llista = List("Scala", "Java", "Python")
for (llenguatge <- llista) {
println(s"Llenguatge: $llenguatge")
}Explicació:
- Iterem sobre cada element de la llista
llista. - A cada iteració, imprimeix l'element actual.
Exemple amb filtres
Explicació:
- Iterem des de 1 fins a 10.
- Només imprimim els nombres parells gràcies al filtre
if i % 2 == 0.
Iteració sobre col·leccions
Scala proporciona diverses maneres d'iterar sobre col·leccions com llistes, arrays, conjunts i mapes.
Exemple amb foreach
Explicació:
- Utilitzem el mètode
foreachper iterar sobre cada element de la llista. - A cada iteració, imprimim l'element actual.
Exemple amb map
Explicació:
- Utilitzem el mètode
mapper crear una nova llista on cada element és el doble de l'element original. - Imprimim la nova llista
doble.
Exercicis pràctics
Exercici 1
Escriu un programa que imprimeixi els nombres de 1 a 10 utilitzant un bucle while.
Solució:
Exercici 2
Escriu un programa que imprimeixi els nombres de 1 a 10 utilitzant un bucle for.
Solució:
Exercici 3
Escriu un programa que imprimeixi els elements d'una llista de noms utilitzant un bucle for.
Solució:
Exercici 4
Escriu un programa que imprimeixi els nombres parells de 1 a 20 utilitzant un bucle for amb un filtre.
Solució:
Conclusió
En aquesta secció, hem après sobre els diferents tipus de bucles en Scala (while, do-while i for) i com utilitzar-los per iterar sobre rangs i col·leccions. També hem vist com aplicar filtres en els bucles for i com utilitzar mètodes com foreach i map per iterar sobre col·leccions de manera funcional. Els exercicis pràctics proporcionats t'ajudaran a consolidar aquests conceptes. En la següent secció, explorarem les funcions i els mètodes en Scala.
Curs de Programació en Scala
Mòdul 1: Introducció a Scala
- Introducció a Scala
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Scala: Sintaxi i Estructura
- Variables i Tipus de Dades
- Operacions Bàsiques i Expressions
Mòdul 2: Estructures de Control i Funcions
- Declaracions Condicionals
- Bucles i Iteracions
- Funcions i Mètodes
- Funcions d'Ordre Superior
- Funcions Anònimes
Mòdul 3: Col·leccions i Estructures de Dades
- Introducció a les Col·leccions
- Llistes i Arrays
- Conjunts i Mapes
- Tuples i Options
- Coincidència de Patrons
Mòdul 4: Programació Orientada a Objectes en Scala
- Classes i Objectes
- Herència i Traits
- Classes Abstractes i Classes Case
- Objectes Companys
- Objectes Singleton
Mòdul 5: Programació Funcional en Scala
- Immutabilitat i Funcions Pures
- Estructures de Dades Funcionals
- Monads i Functors
- For-Comprehensions
- Gestió d'Errors en la Programació Funcional
Mòdul 6: Conceptes Avançats de Scala
- Conversions i Paràmetres Implícits
- Classes de Tipus i Polimorfisme
- Macros i Reflexió
- Concurrència en Scala
- Introducció a Akka
