Forgrening: if-else, ternary, switch-case
Velg mellom if-else-kjeder, ternary-uttrykk og switch-setninger for tydelige forgreninger.
Forgrening: if-else, ternary, switch-case er en gratis leksjon i C++ Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C++ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C++ Academy inneholder totalt 4 leksjoner.
if-setningen
Den grunnleggende betingelsen. Blokken kjøres når betingelsen er sann. Krøllparenteser er valgfrie for én enkelt setning, men anbefales alltid.
int score = 85;
if (score >= 60) {
std::cout << "Pass\n";
}if-else-kjeder
Test alternativer med else if og en avsluttende else. Den første sanne grenen kjø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";Boolske betingelser
Ethvert uttrykk som kan konverteres til bool, fungerer. Pekere evalueres som false når de er null, og heltall som false når de er null. Vær eksplisitt for å gjøre koden tydelig.
Initialisering i if (C++17)
C++17 gjør det mulig å deklarere en variabel inne i if. Variabelens virkefelt er begrenset til if-else-blokken.
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second;
}Den ternære operatoren
condition ? a : b returnerer én av to verdier. Utmerket for enkle valg, men uegnet for nestet logikk.
int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";Unngå nestede ternære operatorer
Nestede ternære operatorer er vanskelige å lese. Bruk heller if-else, eller refaktorer til en hjelpefunksjon.
// 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-setningen
Sammenlign én verdi med flere konstanter. Hver gren trenger break for å unngå at kjøringen faller gjennom til neste case.
switch (day) {
case 1: std::cout << "Mon"; break;
case 2: std::cout << "Tue"; break;
default: std::cout << "?"; break;
}Bevisst fallthrough
Gruppér flere case-grener som deler kode. C++17 la til [[fallthrough]] som en markør for kompilatoren.
switch (c) {
case 'a': case 'e': case 'i': case 'o': case 'u':
std::cout << "vowel"; break;
default:
std::cout << "consonant";
}Begrensninger for switch
switch fungerer bare med heltalls- og enum-typer. For strenger kan if-else eller en hash-tabell brukes.
Initialisering i switch (C++17)
I likhet med if kan en variabel deklareres i switch-hodet.
switch (auto value = compute(); value) {
case 0: ...
default: ...
}Mønster: oppslagstabell
For grener med strengnøkler kan en std::unordered_map være ryddigere enn en if-else-kjede.
std::unordered_map<std::string, std::function<void()>> commands = {
{"start", []{ start(); }},
{"stop", []{ stop(); }}
};
if (auto it = commands.find(cmd); it != commands.end())
it->second();Hurtigsjekk
Hva skjer hvis en case i en switch mangler break, og den neste casen ikke er tom?
Oppsummering
Bruk if-else til generell forgrening, den ternære operatoren til korte valg mellom verdier, og switch når én verdi skal sammenlignes med mange heltallskonstanter. Initialiseringssetninger i C++17 gir ryddigere virkefelt.
Lær deg C++ med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 51
- Leksjoner
- 203
Ofte stilte spørsmål
Er leksjonen «Forgrening: if-else, ternary, switch-case» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien C++ Academy, inkludert «Forgrening: if-else, ternary, switch-case», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i C++ Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Forgrening: if-else, ternary, switch-case»?
Velg mellom if-else-kjeder, ternary-uttrykk og switch-setninger for tydelige forgreninger. Du øver på C++ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med C++ Academy?
Ingen tidligere erfaring er nødvendig. C++ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Forgrening: if-else, ternary, switch-case»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne C++ Academy-leksjonen?
Ja. Alle C++ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Forgrening: if-else, ternary, switch-case
- Løkkemønstre: for, while, do-while
- Range-basert for-løkke med containere
- Tidlige returer, break, continue og goto