\b;Instruções \c;switch\n;, \c;case\n; e \c;default\n;
Com a instrução \c;switch() {}\n; você pode executar um conjunto adequado de instruções (um caso) baseado em algum valor.

\b;Uso básico
Nota: a instrução \l;isbusy\u cbot\isbusy; pode ser muito boa para usar neste cenário.

Veja a seguinte  \l;função\u cbot\function;: o robô estará \l;esperando\u cbot\wait; um certo tempo para uma certa tarefa finalizar:
\c;
\s;public void EsperarFimTarefa(object edificio)
\s;{
\s;	int cat = edificio.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("Tempo de espera indefinido", DisplayError);
\s;}
\n;
Esta função também pode ser escrita usando a instrução \c;switch() {}\n;:
\c;
\s;public void EsperarFimTarefa(object edificio)
\s;{
\s;	switch (edificio.category)
\s;	{
\s;		case Converter: wait(15); break;
\s;		case BotFactory: wait(15); break;
\s;		case PowerPlant: wait(12); break;
\s;		default: message("Tempo de espera indefinido", DisplayError);
\s;	}
\s;}
\n;
De qual maneira escrever estes tipos de estruturas de escolhas, é uma questão de gosto.

Você também pode fazer casos assim:
\c;
\s;switch (edificio.category)
\s;{
\s;	case Converter:
\s;	case BotFactory:
\s;		wait(15); break;
\s;	case PowerPlant: wait(12); break;
\s;	default: message("Tempo de espera indefinido", DisplayError);
\s;}
\n;
O \l;conversor\u object\convert; e \l;a fábrica de robôs\u object\factory; tem o mesmo tempo de espera, então a fim de não escrever as mesmas instruções duas vezes, fizemos múltilpos casos rodarem o mesmo código. De fato, todo código depois do caso mais alto utilizado será executado se nós não executarmos um \c;\l;break\u cbot\break;\n;.

\b;Para especialistas
Sintaxe:
\s;\c;switch ( valor )
\s;{
\s;	case valor1: instruções1
\s;	case valor2: instruções2
\s;	...
\s;	case valorN: instruçõesN
\s;	default: instruçõesPadrão
\s;}
\n;
Com esta estrutura condicional você pode executar \c;instruções1\n; ou \c;instruções2\n; ... ou \c;instruçõesN\n; ou \c;instruçõesPadrão\n; dependendo do \c;valor\n;.

Se o \c;valor\n; é igual a \c;valor1\n;, \c;instruções1\n; a \c;N\n; (incluindo \c;instruçõesPadrão\n;) são executadas.
Se o \c;valor\n;é igual a \c;valor2\n;, \c;instruções2\n; a \c;N\n; (incluindo \c;instruçõesPadrão\n;) são executadas.
E assim por diante.
Se o \c;valor\n; é igual a \c;valorN\n;, \c;instruçõesN\n; e \c;instruçõesPadrão\n; são executadas.
Se o \c;valor\n; não é igual a nenhum valor dos casos dados, \c;instruçõesPadrão\n; são executadas.

Você pode sair da instrução \c;switch() {}\n; usando \c;\l;break\u cbot\break;\n;.

\t;Atenção
Não coloque um \l;ponto e vírgula\u cbot\term; no fim da instrução \c;switch ( ) { }\n;.

\t;Veja também
\l;Programação\u cbot;, \l;tipos\u cbot\type; e \l;categorias\u cbot\category;.
