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

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

Alvao

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ď… 


reklama

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

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



 
 

Top články z OpenOffice.cz

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky Exospace.cz. Mám 24 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


CeBIT 2018

Redakční blog

Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Všechny blogy »

Geotronics - Bezpilotně