libri-javascript-python

L’istruzione switch case è utilizzata quando ci sono dei problemi in cui la soluzione richiede una serie di scelte successive.

Quando ci troviamo di fronte a problemi che richiedono una serie di scelte successive, l’utilizzo di una sequenza di if può diventare scomodo e poco pratico. È in queste situazioni che entra in gioco l’istruzione switch-case, offrendo un’alternativa più chiara e organizzata.

Sintassi del costrutto switch case in C

La sintassi di base dell’istruzione switch-case in linguaggio C è la seguente:

switch (espressione) {
    case valore1:
        // blocco di istruzioni per il caso valore1
        break;
    case valore2:
        // blocco di istruzioni per il caso valore2
        break;
    // altri casi...
    default:
        // blocco di istruzioni predefinito
        break;
}

Dove:

  1. Espressione: Viene valutata una sola volta e il suo risultato viene confrontato con i valori dei vari case.
  2. Case: Ogni case specifica un valore costante da confrontare con il risultato dell’espressione. Se il risultato corrisponde a uno dei valori specificati, viene eseguito il blocco di istruzioni corrispondente. L’istruzione break viene utilizzata per uscire dallo switch dopo l’esecuzione del blocco corretto.
  3. Default: Questo è un caso opzionale che viene eseguito se nessun caso corrispondente viene trovato.

L’importanza dell’istruzione break

È importante notare che in C c’è una peculiarità dello switch case: il “fall-through” automatico tra le clausole dello switch. Questo significa che, anche se una clausola viene eseguita, il controllo passa automaticamente alla clausola successiva, inclusa quella di default, a meno che non venga utilizzata l’istruzione break.

Esempio pratico dell’istruzione switch-case in C

Supponiamo di dover scrivere un programma che stampi il giorno della settimana corrispondente a un determinato numero, dove 1 rappresenta il lunedì, 2 il martedì e così via fino a 7 per la domenica. Utilizzeremo l’istruzione switch-case per gestire questa logica:

#include <stdio.h>

int main() {
    int numeroGiorno;

    // Input del numero del giorno dall'utente
    printf("Inserisci un numero da 1 a 7: ");
    scanf("%d", &numeroGiorno);

    // Verifica del giorno corrispondente utilizzando switch-case
    switch (numeroGiorno) {
        case 1:
            printf("Lunedì\n");
            break;
        case 2:
            printf("Martedì\n");
            break;
        case 3:
            printf("Mercoledì\n");
            break;
        case 4:
            printf("Giovedì\n");
            break;
        case 5:
            printf("Venerdì\n");
            break;
        case 6:
            printf("Sabato\n");
            break;
        case 7:
            printf("Domenica\n");
            break;
        default:
            printf("Numero non valido. Inserisci un numero da 1 a 7.\n");
    }

    return 0;
}

In questo programma, chiediamo all’utente di inserire un numero da 1 a 7. Utilizzando l’istruzione switch-case, controlliamo il valore inserito e stampiamo il giorno corrispondente. Se il numero inserito non rientra nel range da 1 a 7, stampiamo un messaggio di errore.

Questo esempio dimostra come l’istruzione switch-case può essere utilizzata per gestire efficacemente una serie di scelte in base al valore di una variabile in C.

Conclusioni

L’istruzione switch-case in linguaggio C si rivela estremamente utile quando si devono gestire situazioni in cui è necessario effettuare una serie di scelte in base al valore di una variabile. Nel nostro esempio pratico, abbiamo visto come questo costrutto sia efficace nel determinare il giorno della settimana corrispondente a un numero inserito dall’utente.

La chiarezza e la struttura fornite dall’istruzione switch-case rendono il codice più leggibile e organizzato rispetto a un’implementazione basata su una serie di if-else if. Inoltre, l’uso dell’istruzione break ci consente di interrompere l’esecuzione sequenziale e controllata del programma, garantendo che solo il blocco di codice corrispondente venga eseguito.

In definitiva, l’istruzione switch-case è uno strumento fondamentale nella cassetta degli attrezzi di ogni programmatore in C, offrendo un modo efficiente per gestire una serie di scelte in base ai valori delle variabili. È importante comprendere come utilizzarla correttamente per scrivere codice più chiaro, conciso e manutenibile.

Alcuni link utili

Corso linguaggio C

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C