Haarautuminen: if-else, ternary, switch-case
Valitse selkeään haarautumiseen if-else-ketjujen, ternary-lausekkeiden ja switch-lauseiden välillä.
Haarautuminen: if-else, ternary, switch-case on ilmainen C++ Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu C++ Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C++ Academy-kurssilla on yhteensä 4 oppituntia.
if-lause
Perustason ehtolause. Runko suoritetaan, kun ehto on tosi. Aaltosulkeet ovat valinnaiset yhden lauseen yhteydessä, mutta niiden käyttöä suositellaan aina.
int score = 85;
if (score >= 60) {
std::cout << "Pass\n";
}if-else-ketjut
Testatkaa vaihtoehtoja else if-lauseilla ja lopullisella else-haaralla. Ensimmäinen tosi haara suoritetaan.
if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";Boolean-ehdot
Kaikki lausekkeet, jotka voidaan muuntaa tyypiksi bool, toimivat. Osoittimet tulkitaan epätosiksi, kun ne ovat null-arvoja, ja kokonaisluvut epätosiksi, kun ne ovat nollia. Käyttäkää ilmaisua selkeyden vuoksi.
Muuttujan alustaminen if-lauseessa (C++17)
C++17:n ansiosta voitte esitellä muuttujan if-lauseen sisällä. Muuttujan näkyvyysalue rajoittuu if-else-lauseen runkoon.
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second;
}Ternäärioperaattori
condition ? a : b palauttaa toisen kahdesta arvosta. Se sopii erinomaisesti yksinkertaisiin valintoihin, mutta huonosti sisäkkäiseen logiikkaan.
int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";Välttäkää sisäkkäisiä ternäärioperaattoreita
Sisäkkäisiä ternäärioperaattoreita on vaikea lukea. Käyttäkää sen sijaan if-else-rakennetta tai eriyttäkää logiikka apufunktioon.
// 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-lause
Verratkaa yhtä arvoa useisiin vakioihin. Jokainen haara tarvitsee komennon break, jotta suoritus ei siirry seuraavaan case-haaraan.
switch (day) {
case 1: std::cout << "Mon"; break;
case 2: std::cout << "Tue"; break;
default: std::cout << "?"; break;
}Tarkoituksellinen läpivienti
Ryhmitelkää useita case-haaroja, jotka käyttävät samaa koodia. C++17 lisäsi merkinnän [[fallthrough]] kääntäjää varten.
switch (c) {
case 'a': case 'e': case 'i': case 'o': case 'u':
std::cout << "vowel"; break;
default:
std::cout << "consonant";
}switch-lauseen rajoitukset
switch toimii vain kokonaisluku- ja enum-tyypeillä. Käyttäkää merkkijonoille if-else-rakennetta tai hajautustaulua.
Muuttujan alustus switch-lauseessa (C++17)
if-lauseen tapaan voitte esitellä muuttujan switch-otsakkeessa.
switch (auto value = compute(); value) {
case 0: ...
default: ...
}Malli: hakutaulu
Merkkijonoavaimia käyttävissä haaroissa std::unordered_map voi olla selkeämpi kuin if-else-ketju.
std::unordered_map<std::string, std::function<void()>> commands = {
{"start", []{ start(); }},
{"stop", []{ stop(); }}
};
if (auto it = commands.find(cmd); it != commands.end())
it->second();Pikakysymys
Mitä tapahtuu, jos switch-lauseen case-haarasta puuttuu break ja seuraava case-haara ei ole tyhjä?
Kertaus
Käyttäkää if-else-rakennetta yleiseen haarautumiseen, ternäärioperaattoria lyhyisiin arvojen valintoihin ja switch-lausetta, kun yhtä arvoa verrataan useisiin kokonaislukuvakioihin. C++17:n alustuslausekkeet selkeyttävät näkyvyysalueita.
Opi C++ tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Haarautuminen: if-else, ternary, switch-case” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa C++ Academy-oppimispolun 3 oppituntia, myös oppitunnin “Haarautuminen: if-else, ternary, switch-case”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. C++ Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Haarautuminen: if-else, ternary, switch-case”?
Valitse selkeään haarautumiseen if-else-ketjujen, ternary-lausekkeiden ja switch-lauseiden välillä. Harjoittelet C++ Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C++ Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C++ Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Haarautuminen: if-else, ternary, switch-case”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C++ Academy-oppitunnilla?
Kyllä. Jokainen C++ Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Haarautuminen: if-else, ternary, switch-case
- Silmukkamallit: for, while, do-while
- Konttien käsittely range-pohjaisella for-silmukalla
- Varhaiset palautukset, break, continue ja goto