Les declaracions condicionals són una part fonamental de qualsevol llenguatge de programació, ja que permeten que el codi prengui decisions basades en certes condicions. En Scala, les declaracions condicionals es poden implementar utilitzant if
, else if
i else
.
- Sintaxi Bàsica
La sintaxi bàsica d'una declaració condicional en Scala és similar a la d'altres llenguatges de programació com Java o C++.
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
val x = 10 if (x > 0) { println("x és positiu") } else if (x < 0) { println("x és negatiu") } else { println("x és zero") }
- Declaracions Condicionals com Expressions
En Scala, les declaracions condicionals poden ser utilitzades com expressions, el que significa que poden retornar un valor. Això és diferent de molts altres llenguatges de programació on les declaracions condicionals són només instruccions.
Exemple
val x = 10 val resultat = if (x > 0) "positiu" else "no positiu" println(resultat) // Imprimeix "positiu"
- Declaracions Condicionals Niuades
Les declaracions condicionals poden ser niuades, és a dir, una declaració condicional pot estar dins d'una altra.
Exemple
val x = 10 val y = 5 if (x > 0) { if (y > 0) { println("x i y són positius") } else { println("x és positiu però y no ho és") } } else { println("x no és positiu") }
- Operador Ternari
Scala no té un operador ternari com en altres llenguatges (condició ? valor1 : valor2
). En lloc d'això, es poden utilitzar les expressions if-else
per aconseguir el mateix resultat.
Exemple
val x = 10 val resultat = if (x > 0) "positiu" else "no positiu" println(resultat) // Imprimeix "positiu"
Exercicis Pràctics
Exercici 1
Escriu un programa que llegeixi un nombre enter i imprimeixi si és parell o senar.
Solució
val nombre = 4 if (nombre % 2 == 0) { println(s"$nombre és parell") } else { println(s"$nombre és senar") }
Exercici 2
Escriu un programa que llegeixi tres nombres enters i imprimeixi el més gran.
Solució
val a = 10 val b = 20 val c = 30 val major = if (a > b && a > c) { a } else if (b > a && b > c) { b } else { c } println(s"El nombre més gran és $major")
Errors Comuns
-
Oblidar les claus
{}
: En Scala, les claus són opcionals si només hi ha una instrucció després de la condició. No obstant això, és una bona pràctica utilitzar-les per evitar errors.if (x > 0) println("x és positiu") else println("x no és positiu")
-
Confondre l'assignació amb la comparació: Assegura't d'utilitzar
==
per comparar valors i=
per assignar valors.if (x == 10) { // Correcte // codi } if (x = 10) { // Incorrecte // codi }
Conclusió
Les declaracions condicionals són una eina poderosa per controlar el flux del programa basat en condicions. En Scala, aquestes declaracions poden ser utilitzades tant com instruccions com expressions, oferint una gran flexibilitat. Practicar amb diferents exemples i exercicis ajudarà a consolidar aquests conceptes i a utilitzar-los de manera efectiva en els teus programes.
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