\b;Instrukcje \c;switch\n;, \c;case\n; i \c;default\n;
Za pomocą instrukcji \c;switch() {}\n; możesz wykonać określony zestaw instrukcji, zależny od podanej wartości.

\b;Podstawowe użycie
Uwaga: W danym przypadku lepszą opcją będzie wykorzystanie instrukcji \l;isbusy\u cbot\isbusy;.

Spójrz na poniższą \l;funkcję\u cbot\function;: bot będzie \l;czekać\u cbot\wait; odpowiednią ilość czasu na ukończenie zadania:
\c;
\s;public void CzekajNaUkonczenieZadania(object budynek)
\s;{
\s;	int cat = budynek.category;
\s;	\l;if\u cbot\if; (cat == Converter) wait(15);
\s;	else if (cat == BotFactory) wait(15);
\s;	else if (cat == PowerPlant) wait(12);
\s;	else message("Nie zdefiniowano czasu oczekiwania", DisplayError);
\s;}
\n;
Ta funkcja może być również napisana przy użyciu instrukcji \c;switch() {}\n;:
\c;
\s;public void CzekajNaUkonczenieZadania(object budynek)
\s;{
\s;	switch (budynek.category)
\s;	{
\s;		case Converter: wait(15); break;
\s;		case BotFactory: wait(15); break;
\s;		case PowerPlant: wait(12); break;
\s;		default: message("Nie zdefiniowano czasu oczekiwania", DisplayError);
\s;	}
\s;}
\n;
Sposób pisania tego typu struktur jest kwestią osobistego gustu.

Możesz również tworzyć warunki w następujący sposób:
\c;
\s;switch (budynek.category)
\s;{
\s;	case Converter:
\s;	case BotFactory:
\s;		wait(15); break;
\s;	case PowerPlant: wait(12); break;
\s;	default: message("Nie zdefiniowano czasu oczekiwania", DisplayError);
\s;}
\n;
\l;Huta\u object\convert; i \l;fabryka robotów\u object\factory; mają ten sam czas działania, więc by nie pisać dwa razy tego samego kodu sprawiliśmy, by różne wartości uruchamiały ten sam kod. Zauważ, że cały kod po pierwszej wartości zostanie wykonany jeśli nie umieścimy instrukcji \c;\l;break\u cbot\break;\n;.

\b;Dla specjalistów
Składnia:
\s;\c;switch ( wartość )
\s;{
\s;	case wartość1: instrukcje1
\s;	case wartość2: instrukcje2
\s;	...
\s;	case wartośćN: instrukcjeN
\s;	default: instrukcjeDomyślne
\s;}
\n;
Dzięki tej warunkowej strukturze możesz wykonywać \c;instrukcje1\n; lub \c;instrukcje2\n; ... lub \c;instrukcjeN\n; lub \c;instrukcjedomyslne\n;, w zależności od \c;wartości\n;.

Jeśli \c;wartość\n; jest równa \c;wartość1\n;, bloki od \c;instrukcje1\n; do \c;N\n; (włącznie z \c;instrukcjedomyślne\n;) zostają wykonane.
Jeśli \c;wartość\n; jest równa \c;wartość2\n;, bloki od \c;instrukcje2\n; do \c;N\n; (włącznie z \c;instrukcjedomyślne\n;) zostają wykonane.
I tak dalej.
Jeśli \c;wartość\n; jest równa \c;wartośćN\n;, bloki \c;instrukcjeN\n; i \c;instrukcjedomyslne\n; zostają wykonane.
Jeśli \c;wartość\n; nie jest równa żadnej z powyższych wartości, tylko blok \c;instrukcjedomyslne\n; zostanie wykonany.

Możesz zakończyć działanie instrukcji \c;switch() {}\n; używając \c;\l;break\u cbot\break;\n;.

\t;Uwaga
Nie umieszczaj \l;średnika\u cbot\term; na końcu instrukcji \c;switch ( ) { }\n;

\t;Zobacz również
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
