Linux E X P R E S

Facebook

Programovanie v jazyku C++: Podmienka switch-case

C++

Okrem podmienok s konštrukciou if-else poznáme aj switch-case. Tento typ podmienky sa hodí všade tam, kde potrebujeme rýchlo rozhodnuť o hodnote premennej, objektu atď… 


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

Diskuze (0) Nahoru