Diramazioni: if-else, ternario, switch-case
Scelga tra catene if-else, espressioni ternarie e istruzioni switch per diramazioni chiare
Diramazioni: if-else, ternario, switch-case è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.
L'istruzione if
La condizione di base. Il corpo viene eseguito quando la condizione è vera. Le parentesi graffe sono facoltative per una singola istruzione, ma sono sempre consigliate.
int score = 85;
if (score >= 60) {
std::cout << "Pass\n";
}Catene if-else
Verifichi le alternative con else if e un else finale. Viene eseguito il primo ramo la cui condizione è vera.
if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";Condizioni booleane
Qualsiasi espressione convertibile in bool è valida. I puntatori risultano falsi quando sono nulli e gli interi quando valgono zero. Sia esplicito per migliorare la chiarezza.
Inizializzare nell'if (C++17)
C++17 consente di dichiarare una variabile all'interno dell'if. La variabile è visibile nell'ambito del corpo dell'if-else.
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second;
}L'operatore ternario
condition ? a : b restituisce uno di due valori. È ideale per scelte semplici, ma pessimo per la logica annidata.
int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";Ternari annidati: da evitare
I ternari annidati sono difficili da leggere. Utilizzi invece if-else o ristrutturi il codice in una funzione di supporto.
// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";
// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";L'istruzione switch
Confronta un valore con diverse costanti. Ogni ramo deve contenere break per evitare il passaggio diretto al case successivo.
switch (day) {
case 1: std::cout << "Mon"; break;
case 2: std::cout << "Tue"; break;
default: std::cout << "?"; break;
}Fall-through intenzionale
Raggruppi i case che condividono lo stesso codice. C++17 ha aggiunto [[fallthrough]] come indicatore per il compilatore.
switch (c) {
case 'a': case 'e': case 'i': case 'o': case 'u':
std::cout << "vowel"; break;
default:
std::cout << "consonant";
}Vincoli di switch
switch funziona solo con tipi interi ed enumerativi. Per le stringhe, utilizzi if-else o una mappa hash.
Inizializzatore in switch (C++17)
Come per if, può dichiarare una variabile all'interno dell'intestazione di switch.
switch (auto value = compute(); value) {
case 0: ...
default: ...
}Pattern: mappa di ricerca
Per i rami indicizzati da stringhe, una std::unordered_map può risultare più chiara di una catena if-else.
std::unordered_map<std::string, std::function<void()>> commands = {
{"start", []{ start(); }},
{"stop", []{ stop(); }}
};
if (auto it = commands.find(cmd); it != commands.end())
it->second();Verifica rapida
Che cosa succede se un case in uno switch non contiene break e il case successivo non è vuoto?
Riepilogo
Utilizzi if-else per il branching generale, l'operatore ternario per brevi scelte tra valori e switch quando deve confrontare un valore con molte costanti intere. Le init-statements di C++17 rendono più chiaro l'ambito delle variabili.
Domande Frequenti
La lezione «Diramazioni: if-else, ternario, switch-case» è gratuita?
Sì — il testo completo di «Diramazioni: if-else, ternario, switch-case» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.
Cosa imparerò in «Diramazioni: if-else, ternario, switch-case»?
Scelga tra catene if-else, espressioni ternarie e istruzioni switch per diramazioni chiare Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C++ Academy?
Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Diramazioni: if-else, ternario, switch-case»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C++ Academy?
Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Diramazioni: if-else, ternario, switch-case
- Strutture dei cicli: for, while, do-while
- Ciclo for basato su intervallo con i contenitori
- Restituzioni anticipate, break, continue e goto