Les sentències switch en Java són una manera eficient de gestionar múltiples condicions basades en el valor d'una variable. Són una alternativa a les sentències if-else quan es tracta de comparar una variable amb diversos valors possibles. En aquesta secció, aprendrem com utilitzar les sentències switch, veurem exemples pràctics i realitzarem exercicis per reforçar els conceptes apresos.

Conceptes Clau

  1. Sintaxi de la Sentència Switch:

    • La sentència switch avalua una expressió i executa el bloc de codi corresponent al cas que coincideixi amb el valor de l'expressió.
    • Cada cas es defineix amb la paraula clau case seguida del valor i dos punts (:).
    • La paraula clau break s'utilitza per sortir del bloc switch després d'executar un cas.
    • La paraula clau default defineix el bloc de codi que s'executa si cap dels casos coincideix amb el valor de l'expressió.
  2. Estructura de la Sentència Switch:

    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 cas coincideix
    }
    

Exemple Pràctic

Vegem un exemple pràctic per entendre millor com funcionen les sentències switch en Java.

Exemple 1: Dies de la Setmana

public class SwitchExample {
    public static void main(String[] args) {
        int dia = 3;
        String nomDia;

        switch (dia) {
            case 1:
                nomDia = "Dilluns";
                break;
            case 2:
                nomDia = "Dimarts";
                break;
            case 3:
                nomDia = "Dimecres";
                break;
            case 4:
                nomDia = "Dijous";
                break;
            case 5:
                nomDia = "Divendres";
                break;
            case 6:
                nomDia = "Dissabte";
                break;
            case 7:
                nomDia = "Diumenge";
                break;
            default:
                nomDia = "Dia invàlid";
                break;
        }

        System.out.println("El dia de la setmana és: " + nomDia);
    }
}

Explicació del Codi

  1. Declaració de la Variable: Declarem una variable dia amb el valor 3.
  2. Sentència Switch: Utilitzem una sentència switch per determinar el nom del dia de la setmana basat en el valor de dia.
  3. Casos: Cada cas representa un dia de la setmana. Si dia és 3, s'executa el bloc de codi corresponent al cas 3, assignant "Dimecres" a la variable nomDia.
  4. Break: La paraula clau break s'utilitza per sortir del bloc switch després d'executar el codi del cas corresponent.
  5. Default: Si cap dels casos coincideix amb el valor de dia, s'executa el bloc de codi default, assignant "Dia invàlid" a la variable nomDia.

Exercicis Pràctics

Exercici 1: Mesos de l'Any

Escriu un programa que utilitzi una sentència switch per imprimir el nom del mes basat en un valor enter (1-12).

Solució

public class MesosDeLAny {
    public static void main(String[] args) {
        int mes = 5;
        String nomMes;

        switch (mes) {
            case 1:
                nomMes = "Gener";
                break;
            case 2:
                nomMes = "Febrer";
                break;
            case 3:
                nomMes = "Març";
                break;
            case 4:
                nomMes = "Abril";
                break;
            case 5:
                nomMes = "Maig";
                break;
            case 6:
                nomMes = "Juny";
                break;
            case 7:
                nomMes = "Juliol";
                break;
            case 8:
                nomMes = "Agost";
                break;
            case 9:
                nomMes = "Setembre";
                break;
            case 10:
                nomMes = "Octubre";
                break;
            case 11:
                nomMes = "Novembre";
                break;
            case 12:
                nomMes = "Desembre";
                break;
            default:
                nomMes = "Mes invàlid";
                break;
        }

        System.out.println("El mes és: " + nomMes);
    }
}

Exercici 2: Classificació d'Edats

Escriu un programa que utilitzi una sentència switch per classificar una edat en una de les següents categories: "Infant", "Adolescent", "Adult" o "Sènior".

Solució

public class ClassificacioEdats {
    public static void main(String[] args) {
        int edat = 25;
        String categoria;

        switch (edat / 10) {
            case 0:
            case 1:
                categoria = "Infant";
                break;
            case 2:
                categoria = "Adolescent";
                break;
            case 3:
            case 4:
            case 5:
                categoria = "Adult";
                break;
            default:
                categoria = "Sènior";
                break;
        }

        System.out.println("La categoria d'edat és: " + categoria);
    }
}

Errors Comuns i Consells

  1. Oblidar el break: Si oblides el break després d'un cas, el programa continuarà executant els casos següents fins que trobi un break o arribi al final del bloc switch. Això es coneix com a "fall-through".
  2. No utilitzar default: Sempre és una bona pràctica incloure un cas default per gestionar valors inesperats.
  3. Comparació de Tipus: Assegura't que els valors dels casos siguin del mateix tipus que l'expressió del switch.

Resum

En aquesta secció, hem après com utilitzar les sentències switch en Java per gestionar múltiples condicions de manera eficient. Hem vist la sintaxi bàsica, exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Les sentències switch són una eina poderosa per simplificar el codi quan es tracta de comparar una variable amb diversos valors possibles.

Curs de Programació en Java

Mòdul 1: Introducció a Java

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

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

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats