Forgrening: if-else, ternær operator, switch-case
Vælg mellem if-else-kæder, ternære udtryk og switch-sætninger for tydelige forgreninger
Forgrening: if-else, ternær operator, switch-case er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.
if-sætningen
Den grundlæggende betingelse. Kropsdelen udføres, når betingelsen er sand. Krøllede parenteser er valgfri ved én sætning, men anbefales altid.
int score = 85;
if (score >= 60) {
std::cout << "Pass\n";
}if-else-kæder
Test alternativer med else if og en afsluttende else. Den første sande gren køres.
if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";Booleske betingelser
Ethvert udtryk, der kan konverteres til bool, fungerer. Pointers evalueres som falske, når de er null, og heltal som falske, når de er nul. Vær eksplicit for at gøre koden tydelig.
Initialisering i if (C++17)
C++17 lader dig erklære en variabel inde i if. Variablen har if-else-kroppens synlighedsområde.
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second;
}Den ternære operator
condition ? a : b returnerer én af to værdier. Fantastisk til simple valg, men uegnet til indlejret logik.
int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";Indlejrede ternære operatorer: Undgå dem
Indlejrede ternære operatorer er svære at læse. Brug if-else, eller omstrukturer koden til en hjælpefunktion i stedet.
// 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";switch-sætningen
Sammenlign én værdi med flere konstanter. Hver gren skal bruge break for at undgå at falde videre til den næste case.
switch (day) {
case 1: std::cout << "Mon"; break;
case 2: std::cout << "Tue"; break;
default: std::cout << "?"; break;
}Bevidst gennemfald
Saml flere cases, der deler kode. C++17 tilføjede [[fallthrough]] som markering til compileren.
switch (c) {
case 'a': case 'e': case 'i': case 'o': case 'u':
std::cout << "vowel"; break;
default:
std::cout << "consonant";
}Begrænsninger for switch
switch fungerer kun med heltals- og enum-typer. Brug if-else eller en hashtabel til strenge.
Initialisering i switch (C++17)
På samme måde som med if kan du erklære en variabel i switch-headeren.
switch (auto value = compute(); value) {
case 0: ...
default: ...
}Mønster: Opslagstabel
Ved grene med strengenøgler kan en std::unordered_map være mere overskuelig end en if-else-kæde.
std::unordered_map<std::string, std::function<void()>> commands = {
{"start", []{ start(); }},
{"stop", []{ stop(); }}
};
if (auto it = commands.find(cmd); it != commands.end())
it->second();Hurtigt tjek
Hvad sker der, hvis en case i en switch mangler en break, og den næste case ikke er tom?
Opsummering
Brug if-else til generel forgrening, den ternære operator til korte valg mellem værdier og switch, når én værdi skal sammenlignes med mange heltalskonstanter. C++17's initialiseringssætninger gør synlighedsområder mere overskuelige.
Lær C++ med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “Forgrening: if-else, ternær operator, switch-case” gratis?
Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Forgrening: if-else, ternær operator, switch-case”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Forgrening: if-else, ternær operator, switch-case”?
Vælg mellem if-else-kæder, ternære udtryk og switch-sætninger for tydelige forgreninger Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C++ Academy?
Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Forgrening: if-else, ternær operator, switch-case”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C++ Academy-lektion?
Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Forgrening: if-else, ternær operator, switch-case
- Løkkemønstre: for, while, do-while
- Områdebaseret for-løkke med containere
- Tidlige returneringer, break, continue og goto