\b;Příkazy \c;switch\n;, \c;case\n; a \c;default\n;
Pomocí příkazu \c;switch() {}\n; můžete provést jednu z několika sad příkazů podle nějaké řídící hodnoty.

\b;Základní použití
Poznámka: V následujícím příkladu by bylo vhodnější použít příkaz \l;busy\u cbot\busy;.

Představte si následující \l;funkci\u cbot\function;: Robot má \l;čekat\u cbot\wait; přesně správnou dobu, než se dokončí určitá činnost:
\c;
\s;public void CekatNaDokonceniCinnosti(object budova)
\s;{
\s;	int kat = budova.category;
\s;	\l;if\u cbot\if; (kat == Converter) wait(15);
\s;	else if (kat == BotFactory) wait(15);
\s;	else if (kat == PowerPlant) wait(12);
\s;	else message("Doba cekani neni stanovena", DisplayError);
\s;}
\n;
Tuto funkci lze také napsat pomocí příkazu \c;switch() {}\n;:
\c;
\s;public void CekatNaDokonceniCinnosti(object budova)
\s;{
\s;	switch (budova.category)
\s;	{
\s;		case Converter: wait(15); break;
\s;		case BotFactory: wait(15); break;
\s;		case PowerPlant: wait(12); break;
\s;		default: message("Doba cekani neni stanovena", DisplayError);
\s;	}
\s;}
\n;
Která z těchto dvou rozhodovacích struktur Vám víc vyhovuje, je věcí vkusu.

Příkazy \c;case\n; také můžete psát takto:
\c;
\s;switch (budova.category)
\s;{
\s;	case Converter:
\s;	case BotFactory:
\s;		wait(15); break;
\s;	case PowerPlant: wait(12); break;
\s;	default: message("Doba cekani neni stanovena", DisplayError);
\s;}
\n;
\l;Konvertor\u object\convert; a \l;továrna na roboty\u object\factory; pracují stejně dlouho, takže jsme kód obou bloků \c;case\n; sloučili dohromady, abychom stejné příkazy nemuseli psát dvakrát. Příkaz \c;switch\n; totiž provede veškerý kód od příslušného příkazu \c;case\n; dál, dokud nenarazí na příkaz \c;\l;break\u cbot\break;\n;.

\b;Pro pokročilé
Syntaxe:
\s;\c;switch ( hodnota )
\s;{
\s;	case hodnota1: příkazy1
\s;	case hodnota2: příkazy2
\s;	...
\s;	case hodnotaN: příkazyN
\s;	default: náhradníPříkazy
\s;}
\n;
Pomocí této rozhodovací struktury můžete v závislosti na řídící hodnotě provést \c;příkazy1\n;, \c;příkazy2\n;, ... \c;příkazyN\n; nebo \c;náhradníPříkazy\n;.

Pokud se \c;hodnota\n; rovná \c;hodnota1\n;, provedou se \c;příkazy1\n; až \c;příkazyN\n; a dále \c;náhradníPříkazy\n;.
Pokud se \c;hodnota\n; rovná \c;hodnota2\n;, provedou se \c;příkazy2\n; až \c;příkazyN\n; a dále \c;náhradníPříkazy\n;.
A tak dále.
Pokud se \c;hodnota\n; rovná \c;hodnotaN\n;, provedou se \c;příkazyN\n; a \c;náhradníPříkazy\n;.
Pokud se \c;hodnota\n; nerovná žádné předdefinované hodnotě u příkazu \c;case\n;, provedou se \c;náhradníPříkazy\n;.

Příkaz \c;switch() {}\n; můžete ukončit příkazem \c;\l;break\u cbot\break;\n;.

\t;Pozor
Za příkaz \c;switch ( ) { }\n; nepište \l;středník\u cbot\term;.

\t;Užitečné odkazy
\l;Programování\u cbot;, \l;datové typy\u cbot\type; a \l;kategorie\u cbot\category;.
