přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Podmienka switch-case

IT Systems - Alza Media (Publero)

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

Nahoru

(Jako ve škole)
Průměr: 1,00 | Hodnotilo: 1
 

Top články z OpenOffice.cz

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky Exospace.cz. Mám 23 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity
  • Hodnocení autora: *


Soutěž - monitor Philips 24"

Public Relations

Využijte letní akce na předplatné časopisu IT Systems!

Nenechte si ujít příležitost dostávat pravidelně informace ze světa podnikové informatiky a předplaťte si časopis IT Systems. Udržujte si přehled v oboru a získejte inspiraci, jak využít informační technologie pro vaši firmu nebo organizaci. K pořízení nebo obnovení předplatného IT Systems je nyní ideální příležitost. Právě totiž probíhá letní akce, v rámci níž je možno získat roční předplatné jen za 599 Kč.

Pokračování ...


Redakční blog

Pavel Fric

Pavel Fric, 28. únor

Lollypop


Pavel Fric

Pavel Fric, 29. listopad

Palapeli


Pavel Fric

Pavel Fric, 19. listopad

Amarok


Všechny blogy »