SWITCH není cyklus, ale násobné rozhodování (vlastně několikanásobný IF).
Příklad asi napoví víc :
.
.
.
if (PROMENNA==0)
{
Provádí;
se;
akce;
pro;
proměnná=0;
}
if (PROMENNA==1)
{
Provádí;
se;
akce;
pro;
proměnná=1;
}
if (PROMENNA==2)
{
Provádí;
se;
akce;
pro;
proměnná=2;
}
if (PROMENNA==3)
{
Provádí;
se;
akce;
pro;
proměnná=3;
}
if (PROMENNA==4)
{
Provádí;
se;
akce;
pro;
proměnná=4;
}
.
.
.
a tady je totéž pomocí SWITCH :
.
.
.
switch (PROMENNA)
{
case 0: Provádí;
se;
akce;
pro;
proměnná=0;
break;
case 1: Provádí;
se;
akce;
pro;
proměnná=1;
break;
case 2: Provádí;
se;
akce;
pro;
proměnná=2;
break;
case 3: Provádí;
se;
akce;
pro;
proměnná=3;
break;
case 4: Provádí;
se;
akce;
pro;
proměnná=4;
break;
case 5: Provádí;
se;
akce;
pro;
proměnná=5;
break;
default: Provádí;
se;
akce;
pro;
všechny;
ostatní
hodnoty;
break;
}
.
.
.
příkaz BREAK je nutný, jinak se bude provádět vše, co je dál. Tedy pokud je proměnná 3, provede se akce pro proměnnou 3 a kdyby tam nebyly ty BREAKy, tak se provede i 4, 5 a default. Položka default není povinná. Pokud tam nebude, neprovede se v ostatních případech nic. Rozdíl je jednak v přehlednosti zápisu, ale hlavně v tom, že v případě IFů se proměnná vyhodnocuje při každé podmínce (provádí se každý IF zvlášť), v případě SWITCHe se proměnná vyhodnocuje pouze jednou.
Takže pokud zvládneš zapsat podmínku do IF, zvládneš zapsat i podmínku do SWITCHe.