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
