Podmienka switch-case
V článku sme si okrajovo ukázali podmienky s pomocou konštrukcie switch-case. Táto konštrukcia je síce menej používaná ako podmienka s konštrukciu if-else, ale niekedy je jednoduchšia a ponúka intuitívnejšiu možnosť hlavne vtedy, ak máme nejakú premennú a máme o nej rozhodnúť, akú ma hodnotu. Okrem predstavenia všeobecnej konštrukcie switch-case si predstavíme aj pár zaujímavých príkladov, ktoré môžu byť zaujímave pre začiatočníkov.
Samotná zjednodušená deklarácia podmienky switch-case je nasledovná:
switch (premenná) { case hodnota premennej: blok kódu … break; case hodnota premennej: blok kodu … break; … … ... defaulf: blok kodu }
Konštrukcia default sa vykoná vtedy, ak všetky ostatné možností nenastali.
1. program: Zahrievacie kolo na switch-case podmienku.
#include <iostream> // hlavičkový súbor using namespace std; // priestor mien int main() // hlavná funkcia main { cout << "Prave si otvoril hudobny program. Prosim zvol od 1 do 7 aby som ti pustil pesnicku!\n"; int volba = 0; cout << "Tvoja volba: "; cin >> volba; if (volba <=0 || volba >= 8) // ošetrenie vstupu { cout << "Nepovolena operacia, koncim, goodbye"; return 0; } switch (volba) // podmienka cez konštrukciu switch-case { case 1: cout << "Beethowen"; break; case 2: cout << "Mozart"; break; case 3: cout << "Bach"; break; case 4: cout << "Wagner"; break; case 5: cout << "Brahms"; break; case 6: cout << "Shubert"; break; case 7: cout << "Verdi"; break; } return 0; }
Výsledok programu:
Prave si otvoril hudobny program. Prosim zvol od 1 do 7 aby som ti pustil pesnicku! Tvoja volba: 2 Mozart
2. program: Pohni svojím panáčikom!
#include <iostream> using namespace std; int main() { cout << "Ukazem ti magiu, pohnes s panacikom!\n"; cout << "Tvoja aktualna pozicia je v strede stvorca.\n"; cout << "*****\n"; cout << "*****\n"; cout << "**+**\n"; cout << "*****\n"; cout << "*****\n"; cout << "\n"; char volba; cout << "Zvol pohyb: w - hore, s - dole, a - dolava, d - doprava\n"; cin >> volba; cout << "\n"; if (volba != 'w' && volba != 's' && volba != 'a' && volba != 'd') { cout << "Ajeje nepovolena operacia! Koncim!"; return 0; } switch (volba) // tu ideme pohnúť panáčikom { case 'w': cout << "*****\n"; cout << "**+**\n"; cout << "*****\n"; cout << "*****\n"; cout << "*****\n"; break; case 's': cout << "*****\n"; cout << "*****\n"; cout << "*****\n"; cout << "**+**\n"; cout << "*****\n"; break; case 'a': cout << "*****\n"; cout << "*****\n"; cout << "*+***\n"; cout << "*****\n"; cout << "*****\n"; break; case 'd': cout << "*****\n"; cout << "*****\n"; cout << "***+*\n"; cout << "*****\n"; cout << "*****\n"; break; } return 0; }
Výsledok programu:
Ukazem ti magiu, pohnes s panacikom! Tvoja aktualna pozicia je v strede stvorca. ***** ***** **+** ***** ***** Zvol pohyb: w - hore, s - dole, a - dolava, d - doprava a ***** ***** *+*** ***** *****
3. program: 3-bitový konvertor aj s použitím aj konštrukcie default
#include <iostream> using namespace std; int main() { cout << "Som program 3-bitovy konvertor, ktory zmeni cislo na 3-bitovu podobu.\n"; int volba; cout << "Zvol cislo od 0 do 7: "; cin >> volba; if (volba < 0 || volba >= 8) { cout << "Nepovolena operacia takze papa"; return 0; } cout << "Po konverzii zadaneho cisla: "<<volba<<"\n"; switch (volba) { case 0: cout << "000\n"; break; case 1: cout << "001\n"; break; case 2: cout << "010\n"; break; case 3: cout << "011\n"; break; case 4: cout << "100\n"; break; case 5: cout << "101\n"; break; case 6: cout << "110\n"; break; default: cout << "111\n"; } return 0; }
Výsledok programu:
Som program 3-bitovy konvertor, ktory zmeni cislo na 3-bitovu podobu. Zvol cislo od 0 do 7: 7 Po konverzii zadaneho cisla: 7 111