Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Istruzione Switch | Introduzione alle Istruzioni Condizionali
Istruzioni Condizionali in C++

bookIstruzione Switch

L'istruzione switch è anch'essa una delle strutture di controllo che semplifica il processo decisionale nei programmi. Fornisce un modo efficiente per valutare un'espressione ed eseguire diversi blocchi di codice in base al valore di tale espressione. Questo risulta particolarmente utile quando si gestisce un elevato numero di condizioni ramificate.

È progettata principalmente per funzionare con valori numerici, come interi (int) e caratteri (char).

switch.h

switch.h

copy
12345678910111213141516
switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
  • L'espressione viene valutata una sola volta e il programma salta al case appropriato in base al valore dell'espressione;

  • Ogni case rappresenta un valore specifico o un insieme di valori che l'espressione potrebbe corrispondere;

  • L'istruzione break viene utilizzata per uscire dal blocco switch dopo che il codice relativo a un determinato case è stato eseguito;

  • Il default è opzionale e viene utilizzato quando nessuno dei case specificati corrisponde all'espressione. Funziona come opzione di riserva.

Supponiamo di possedere un ristorante e di voler fornire un menu basato su codici numerici elencati. Ecco la rappresentazione in codice degli elementi del menu.

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }

Sì, è possibile ottenere questo risultato con una semplice istruzione if, che apparirebbe in questo modo:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324
#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }

Funzionerà allo stesso modo e come previsto, ma generalmente è preferibile utilizzare un'istruzione switch perché offre un modo più chiaro, più leggibile e, soprattutto, più facile da mantenere e scalabile per gestire questo tipo di flusso di controllo.

Omettere la parola chiave break in un'istruzione switch può causare comportamenti imprevisti del programma, poiché il codice continuerà a essere eseguito nei casi successivi. Tuttavia, omettere intenzionalmente break può essere utilizzato per gestire più casi all'interno dello stesso blocco di codice. Questo approccio, noto come fall-through, consente di gestire insieme casi correlati.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Compito

Swipe to start coding

Stai sviluppando un sistema di pianificazione settimanale che restituisce il nome del giorno in base al suo numero (1 per Monday, 2 per Tuesday, ecc.).

  1. All'interno della funzione getDayName, utilizzare un'istruzione switch su dayNumber:
    • Per ciascun caso da 1 a 7, assegnare il nome del giorno corrispondente ("Monday", "Tuesday", ..., "Sunday") alla variabile dayName.
    • Utilizzare l'istruzione break dopo ogni caso per evitare il fall-through.
    • Utilizzare un caso default per assegnare "Invalid day" se l'input non è compreso tra 1 e 7.
  2. Restituire il valore di dayName dalla funzione.

Soluzione

solution.cpp

solution.cpp

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 6
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you give an example of a switch statement in code?

What happens if I forget to include a break statement in a switch case?

Can you explain more about the fall-through behavior in switch statements?

close

Awesome!

Completion rate improved to 7.69

bookIstruzione Switch

Scorri per mostrare il menu

L'istruzione switch è anch'essa una delle strutture di controllo che semplifica il processo decisionale nei programmi. Fornisce un modo efficiente per valutare un'espressione ed eseguire diversi blocchi di codice in base al valore di tale espressione. Questo risulta particolarmente utile quando si gestisce un elevato numero di condizioni ramificate.

È progettata principalmente per funzionare con valori numerici, come interi (int) e caratteri (char).

switch.h

switch.h

copy
12345678910111213141516
switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
  • L'espressione viene valutata una sola volta e il programma salta al case appropriato in base al valore dell'espressione;

  • Ogni case rappresenta un valore specifico o un insieme di valori che l'espressione potrebbe corrispondere;

  • L'istruzione break viene utilizzata per uscire dal blocco switch dopo che il codice relativo a un determinato case è stato eseguito;

  • Il default è opzionale e viene utilizzato quando nessuno dei case specificati corrisponde all'espressione. Funziona come opzione di riserva.

Supponiamo di possedere un ristorante e di voler fornire un menu basato su codici numerici elencati. Ecco la rappresentazione in codice degli elementi del menu.

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }

Sì, è possibile ottenere questo risultato con una semplice istruzione if, che apparirebbe in questo modo:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324
#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }

Funzionerà allo stesso modo e come previsto, ma generalmente è preferibile utilizzare un'istruzione switch perché offre un modo più chiaro, più leggibile e, soprattutto, più facile da mantenere e scalabile per gestire questo tipo di flusso di controllo.

Omettere la parola chiave break in un'istruzione switch può causare comportamenti imprevisti del programma, poiché il codice continuerà a essere eseguito nei casi successivi. Tuttavia, omettere intenzionalmente break può essere utilizzato per gestire più casi all'interno dello stesso blocco di codice. Questo approccio, noto come fall-through, consente di gestire insieme casi correlati.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Compito

Swipe to start coding

Stai sviluppando un sistema di pianificazione settimanale che restituisce il nome del giorno in base al suo numero (1 per Monday, 2 per Tuesday, ecc.).

  1. All'interno della funzione getDayName, utilizzare un'istruzione switch su dayNumber:
    • Per ciascun caso da 1 a 7, assegnare il nome del giorno corrispondente ("Monday", "Tuesday", ..., "Sunday") alla variabile dayName.
    • Utilizzare l'istruzione break dopo ogni caso per evitare il fall-through.
    • Utilizzare un caso default per assegnare "Invalid day" se l'input non è compreso tra 1 e 7.
  2. Restituire il valore di dayName dalla funzione.

Soluzione

solution.cpp

solution.cpp

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 6
single

single

some-alt