🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Switch in C++

Codegrind TeamJul 22 2023

L’istruzione switch in C++ è un’altra forma di costrutto di controllo del flusso, utilizzata per selezionare uno tra molti blocchi di codice da eseguire, in base al valore di un’espressione specificata. Questa struttura è spesso utilizzata quando è necessario effettuare una scelta tra diverse opzioni o casi. In questa guida, esploreremo l’istruzione switch, la sua sintassi e le differenze rispetto all’utilizzo di una serie di istruzioni if-else.

Sintassi dell’Istruzione switch

La sintassi di base dell’istruzione switch è la seguente:

switch (espressione) {
    case valore1:
        // Blocco di codice da eseguire se espressione è uguale a valore1
        break;
    case valore2:
        // Blocco di codice da eseguire se espressione è uguale a valore2
        break;
    // Altri casi...
    default:
        // Blocco di codice da eseguire se nessun caso corrisponde
}
  • espressione è una valutazione che viene confrontata con i vari casi.
  • case valore1: definisce un caso in cui l’espressione viene confrontata con valore1. Se c’è una corrispondenza, il blocco di codice associato viene eseguito.
  • break viene utilizzato per uscire dal switch dopo l’esecuzione del caso corrispondente. Altrimenti, il flusso di esecuzione proseguirà nei casi successivi.
  • default: è un caso opzionale che viene eseguito se nessun altro caso corrisponde all’espressione.

Esempio:

int scelta = 2;

switch (scelta) {
    case 1:
        std::cout << "Hai scelto l'opzione 1" << std::endl;
        break;
    case 2:
        std::cout << "Hai scelto l'opzione 2" << std::endl;
        break;
    case 3:
        std::cout << "Hai scelto l'opzione 3" << std::endl;
        break;
    default:
        std::cout << "Scelta non valida" << std::endl;
}

Confronto tra switch ed else if

L’uso dell’istruzione switch è adatto quando è necessario effettuare una scelta tra diverse opzioni basate su un singolo valore. Tuttavia, ci sono alcune differenze significative tra switch ed else if:

switch

  • È più efficiente quando ci sono molte opzioni da valutare, poiché il controllo viene effettuato direttamente sul valore dell’espressione.
  • È più leggibile quando ci sono molte opzioni, poiché organizza i casi in modo chiaro.

else if

  • È più flessibile quando è necessario valutare condizioni complesse e non solo valori singoli.
  • È possibile utilizzare espressioni booleane come condizioni nei singoli if.

In generale, switch è una scelta migliore quando è necessario selezionare una tra molte opzioni basata su un valore singolo e noto.

Conclusioni

L’istruzione switch è una struttura di controllo del flusso che consente di selezionare uno tra molti blocchi di codice in base al valore di un’espressione. È una scelta eccellente quando si deve gestire una serie di opzioni basate su un valore noto. Tuttavia, è importante ricordare che switch può essere utilizzato solo con espressioni discrete, mentre else if è più flessibile e può gestire condizioni complesse. La scelta tra switch ed else if dipenderà dalla specifica esigenza del problema che si sta affrontando.