Les sentències condicionals són una part fonamental de qualsevol llenguatge de programació, ja que permeten que el codi prengui decisions basades en certes condicions. En Java, les sentències condicionals més comunes són if
, else if
, else
i switch
.
- Sentència
if
if
La sentència if
s'utilitza per executar un bloc de codi només si una condició específica és certa.
Sintaxi
Exemple
En aquest exemple, el missatge "x és més gran que 5" es mostrarà perquè la condició x > 5
és certa.
- Sentència
else
else
La sentència else
s'utilitza per executar un bloc de codi si la condició de l'if
és falsa.
Sintaxi
if (condició) { // codi a executar si la condició és certa } else { // codi a executar si la condició és falsa }
Exemple
int x = 3; if (x > 5) { System.out.println("x és més gran que 5"); } else { System.out.println("x no és més gran que 5"); }
En aquest exemple, el missatge "x no és més gran que 5" es mostrarà perquè la condició x > 5
és falsa.
- Sentència
else if
else if
La sentència else if
s'utilitza per especificar una nova condició si la condició anterior és falsa.
Sintaxi
if (condició1) { // codi a executar si condició1 és certa } else if (condició2) { // codi a executar si condició2 és certa } else { // codi a executar si cap de les condicions anteriors és certa }
Exemple
int x = 7; if (x > 10) { System.out.println("x és més gran que 10"); } else if (x > 5) { System.out.println("x és més gran que 5 però menor o igual a 10"); } else { System.out.println("x és menor o igual a 5"); }
En aquest exemple, el missatge "x és més gran que 5 però menor o igual a 10" es mostrarà perquè la condició x > 5
és certa.
- Sentència
switch
switch
La sentència switch
s'utilitza per seleccionar una de moltes blocs de codi a executar.
Sintaxi
switch (expressió) { case valor1: // codi a executar si expressió == valor1 break; case valor2: // codi a executar si expressió == valor2 break; // més casos... default: // codi a executar si cap dels casos anteriors és cert }
Exemple
int dia = 3; switch (dia) { case 1: System.out.println("Dilluns"); break; case 2: System.out.println("Dimarts"); break; case 3: System.out.println("Dimecres"); break; case 4: System.out.println("Dijous"); break; case 5: System.out.println("Divendres"); break; case 6: System.out.println("Dissabte"); break; case 7: System.out.println("Diumenge"); break; default: System.out.println("Dia invàlid"); }
En aquest exemple, el missatge "Dimecres" es mostrarà perquè la variable dia
és igual a 3.
Exercicis Pràctics
Exercici 1
Escriu un programa que determini si un nombre és positiu, negatiu o zero.
Solució
import java.util.Scanner; public class PositiuNegatiuZero { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Introdueix un nombre: "); int nombre = scanner.nextInt(); if (nombre > 0) { System.out.println("El nombre és positiu."); } else if (nombre < 0) { System.out.println("El nombre és negatiu."); } else { System.out.println("El nombre és zero."); } } }
Exercici 2
Escriu un programa que determini el dia de la setmana basat en un nombre del 1 al 7.
Solució
import java.util.Scanner; public class DiaDeLaSetmana { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Introdueix un nombre (1-7): "); int dia = scanner.nextInt(); switch (dia) { case 1: System.out.println("Dilluns"); break; case 2: System.out.println("Dimarts"); break; case 3: System.out.println("Dimecres"); break; case 4: System.out.println("Dijous"); break; case 5: System.out.println("Divendres"); break; case 6: System.out.println("Dissabte"); break; case 7: System.out.println("Diumenge"); break; default: System.out.println("Dia invàlid"); } } }
Errors Comuns i Consells
-
Oblidar el
break
en una sentènciaswitch
: Si oblides elbreak
, el programa continuarà executant els casos següents fins que trobi unbreak
o arribi al final delswitch
.switch (dia) { case 1: System.out.println("Dilluns"); // falta el break aquí case 2: System.out.println("Dimarts"); break; // més casos... }
-
No utilitzar parèntesis en les condicions: Assegura't d'utilitzar parèntesis per envoltar les condicions en les sentències
if
,else if
ielse
.if x > 5 { // Incorrecte System.out.println("x és més gran que 5"); }
-
Utilitzar
==
en lloc de.equals()
per comparar cadenes: En Java, per comparar cadenes, utilitza el mètode.equals()
en lloc de l'operador==
.String a = "hola"; if (a == "hola") { // Incorrecte System.out.println("Les cadenes són iguals"); } if (a.equals("hola")) { // Correcte System.out.println("Les cadenes són iguals"); }
Conclusió
Les sentències condicionals són essencials per controlar el flux del programa basat en condicions específiques. Hem vist com utilitzar les sentències if
, else if
, else
i switch
per prendre decisions en el nostre codi. Practica amb els exercicis proporcionats per reforçar la teva comprensió d'aquestes estructures. En el següent tema, explorarem els bucles, que ens permetran repetir blocs de codi basats en condicions.
Curs de Programació en Java
Mòdul 1: Introducció a Java
- Introducció a Java
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Operadors
Mòdul 2: Flux de Control
Mòdul 3: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Mètodes
- Constructors
- Herència
- Polimorfisme
- Encapsulació
- Abstracció
Mòdul 4: Programació Orientada a Objectes Avançada
Mòdul 5: Estructures de Dades i Col·leccions
Mòdul 6: Gestió d'Excepcions
Mòdul 7: Entrada/Sortida de Fitxers
- Lectura de Fitxers
- Escriptura de Fitxers
- Fluxos de Fitxers
- BufferedReader i BufferedWriter
- Serialització
Mòdul 8: Multithreading i Concurrència
- Introducció al Multithreading
- Creació de Fils
- Cicle de Vida dels Fils
- Sincronització
- Utilitats de Concurrència
Mòdul 9: Xarxes
- Introducció a les Xarxes
- Sockets
- ServerSocket
- DatagramSocket i DatagramPacket
- URL i HttpURLConnection