dum | žák

Programování C#

Název školy Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace
Adresa školky Kostelní 134, 411 08 Štětí
46773509
Název operačního programu OP Vzdělávání pro konkurenceschopnost
Registrační číslo CZ.1.07/1.5.00/34.1006
Označení vzdělávacího materiálu VY_32_INOVACE_23_PRG_451
Název tématické oblasti (sady) Programování
Název materiálu Přepínač
Anotace Představení řídící konstrukce, která dokáže ovlivňovat, které bloky kódu se vykonají, a které ne. Na základě vstupního výrazu se provede požadovaná akce.
Autor Ivan Pomykacz Jazyk čeština
Očekávaný výstup Píše komplexnější programové konstrukce. Chápe sekvenčnost vykonávání kódu a možnosti některé části přeskočit pomocí řídící konstrukce na základě vstupního výrazu.
Klíčová slova řídící konstrukce, přepínač
Druh výukového zdroje Pracovní list Věková skupina žáků 15+
Typ interakce aktivita Ročník 1.
Speciální vzdělávací potřeby žádné
Zhotoveno, (datum/období) 30.09.2013 Celková velikost

pdf icon
Switch

Obsah

Shrnutí

Řídící konstrukce umožňují usměrňovat tok kódu, tj. vykonávání některých příkazů a jiné třeba přeskočit (vynechat). Jsou to právě tyto konstrukce, díky kterým můžeme tvořit různé algoritmy a výsledné programy pak skutečně něco "dělají".

switch

Konstrukt přepínače (switch) je na syntaxi poněkud těžkopádnější. Ale protože ještě neznáme jiné konstrukce, tak není s čím porovnávat.

Přepínač uvozujeme klíčovým slovem switch() společně s kulatými závorkami, do kterých se zapisuje condition podmínka, neboli výraz, který se bude vyhodnocovat.

Následuje tělo switche, které je uzavřeno do složených závorek { }.

Všimněte si, že zatím žádný středník.

switch (1) {
 
}
 

Do těla switche se vkládají tzv. case (případ). Switch pak na základě podmínky rozhodne, který case (případ) vykoná. Přičemž u každého case je uvedená hodnota (v příkladu níže to jsou čísla 1 a 2), pro kterou existuje případ.

Každý case je ukončen příkazem break;.

switch (1) {
case 1:
    Console.WriteLine("Volba 1");
    break;
case 2:
    Console.WriteLine("Volba 1");
    break;
default:
    Console.WriteLine("Neznámá volba");
    break;
}
 

Je-li tedy výraz ve switchi (v kulatých závorkách) roven hodnotě 1, pak by program při spuštění vypsal text "Volba 1"

Právě uvedený příklad tak trochu pozbývá smysl. V podmínce switche je totiž hodnota 1 a vždy tam bude, tudíž se na ostatní případy nikdy nedostane.

Poslední blok v těle konstruktu switch je blok default. Je-li uveden (není totiž povinný), pak se provede vždy, když žádný case neodpovídá zadané podmínce. Pokud byste změnili hodnotu v podmínce switche z 1 na 3, pak by se provedl právě blok default.

Příklad

Následující ukázka ukazuje poněkud smysluplnější využití switche. Uživatel je nejprve vyzván k zadání písmene "a" nebo "b" a podle této volby pak switch rozhodne, který blok kódu provede.

using System;
 
namespace Prepinac
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Console.WriteLine("Program: Přepínač v1.0\n");
 
            string volba;
            Console.Write("Zvol buď \"a\" nebo \"b\": ");
            volba = Console.ReadLine();
 
            switch (volba) {
            case "a":
                Console.WriteLine("Áčko");
                break;
 
            case "b":
                Console.WriteLine("Béčko");
                break;
 
            default:
                 Console.WriteLine("Neznám");
                 break;
            }
 
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}