Programação: Tomada de decisão
Tomadas de decisão são ferramentas importantes em programação. Decidir qual ação tomar, quando e o que fazer: peças chave em qualquer linguagem de programação. Para aqueles que ingressam na arte de programar, este será um ótimo passo em sua aprendizagem.
Parte 3: A declaração SWITCH
Em algumas situações nossos programas precisarão lidar com escolhas com respostas mais complexas, além de decisões do tipo sim/não, fazer/não fazer. Às vezes é preciso decidir entre várias escolhas possíveis.
Ainda podemos usar a declaração de controle if, mas se o número de escolhas for grande, usar if pode se tornar cansativo e até induzir a erros. Usando if, seria como a última opção descrita anteriormente:
Obviamente o código do tipo acima pode induzir a muitos erros. A alternativa em Octave é a declaração de controle switch. Também é uma ferramenta de uso bem fácil. O que switch faz é ler o valor de uma variável, e executar um trecho de código diferente para cada valor especificado da variável. A forma geral é:
No código acima, para cada "VALORXX" o código indicado é executado e então o programa ignora as demais opções. O termo "otherwise" é alternativo, podemos deixar de usá-lo. No entanto, se usarmos o "otherwise" ele será usado obrigatoriamente se as outras opções não funcionarem.
Perceba também algo muito importante: o código acima é fácil de ler, e consequentemente de manter. Por exemplo, se a variável mudar de nome (por qualquer motivo que seja) basta alterar uma linha e tudo está bem!
Uma característica interessante é que podemos usar uma lista para "VALORXXX". Ou seja, podemos indicar vários valores para cada "case", e se qualquer um dos valores conferir com o valor da variável, o código em questão será executado.
Ainda podemos usar a declaração de controle if, mas se o número de escolhas for grande, usar if pode se tornar cansativo e até induzir a erros. Usando if, seria como a última opção descrita anteriormente:
if CONDICAO1
CODIGO_PARA_EXECUTAR;
elseif CONDICAO2
CODIGO_PARA_EXECUTAR2;
elseif CONDICAO3
CODIGO_PARA_EXECUTAR3;
elseif
(...)
elseif CONDICAO1000
CODIGO_PARA_EXECUTAR1000;
endif
CODIGO_PARA_EXECUTAR;
elseif CONDICAO2
CODIGO_PARA_EXECUTAR2;
elseif CONDICAO3
CODIGO_PARA_EXECUTAR3;
elseif
(...)
elseif CONDICAO1000
CODIGO_PARA_EXECUTAR1000;
endif
Obviamente o código do tipo acima pode induzir a muitos erros. A alternativa em Octave é a declaração de controle switch. Também é uma ferramenta de uso bem fácil. O que switch faz é ler o valor de uma variável, e executar um trecho de código diferente para cada valor especificado da variável. A forma geral é:
switch (VARIAVEL)
case VALOR1
CODIGO_PARA_EXECUTAR1;
case VALOR2
CODIGO_PARA_EXECUTAR2;
case VALOR3
CODIGO_PARA_EXECUTAR3;
(...)
case VALOR1000
CODIGO_PARA_EXECUTAR1000;
otherwise
CODIGO_ALTERNATIVO;
endswitch
case VALOR1
CODIGO_PARA_EXECUTAR1;
case VALOR2
CODIGO_PARA_EXECUTAR2;
case VALOR3
CODIGO_PARA_EXECUTAR3;
(...)
case VALOR1000
CODIGO_PARA_EXECUTAR1000;
otherwise
CODIGO_ALTERNATIVO;
endswitch
No código acima, para cada "VALORXX" o código indicado é executado e então o programa ignora as demais opções. O termo "otherwise" é alternativo, podemos deixar de usá-lo. No entanto, se usarmos o "otherwise" ele será usado obrigatoriamente se as outras opções não funcionarem.
Perceba também algo muito importante: o código acima é fácil de ler, e consequentemente de manter. Por exemplo, se a variável mudar de nome (por qualquer motivo que seja) basta alterar uma linha e tudo está bem!
Uma característica interessante é que podemos usar uma lista para "VALORXXX". Ou seja, podemos indicar vários valores para cada "case", e se qualquer um dos valores conferir com o valor da variável, o código em questão será executado.