|
Já vimos como podemos
usar o IF..else para criar-mos escolhas
entre blocos de códigos a executar.
E vimos também, como múltiplos
IF's podem ser encadeados, para podermos
atingir diversas situações.
Um dos exemplos utilizados foi:
If ($dia=="Sábado")
echo "Fico em casa";
else if ($dia=="Domingo") echo
"Vou passear";
else echo "É dia da semana,
vai trabalhar!!!";
è um exemplo simples,
onde o IF..else resolve bem o problema.
Mas, o caso muda de figura, se tivermos
de considerar enumeras hipóteses.
Utilizar muitos "If..else if.. else
if... else" torna-se impraticável,
e muito confuso de ser perceber. è
nesta altura que entra o Switch. O swich
é uma função que valida
uma variável do tipo caracter, inteira,
real ou string.
Consoante determinada validação
(ou opção considerada válida)
é-nos permitido executar determinado
bloco de código para esse "caso/estado"
da variável.
Pegando no exemplo anterior, e utilizando
o Switch, temos o seguinte exemplo:
<?
switch($dia)
{
case "Sábado": echo "Fico
em casa"; break;
case "Domingo": echo "Vou
passear"; break;
default: echo "É dia da semana,
vai trabalhar!!!";
}
?>
Vou explicar passo a passo.
Primeiro, indicamos à função
switch() qual a variável estamos
a testar: neste caso a variável $dia.
Depois abrimos um bloco de código
desta função, onde declaramos
os casos ou estados da variável Cada
caso é indicado com a sigla "case"
seguido do seu valor Os ":" indicam
que o código que se segue é
pertencente ao caso anteriormente declarado.
E no fim de cada case, terminamos o bloco
com um "break" para que mais nada
seja executado do Switch. Por fim, podemos
especificar um caso "default",
para a ocasião de nenhum dos "cases"
anteriores, seja o estado pretendido.
Seguindo a lógica
do script temos a seguinte interpretação:
1- Indicação
de que vamos validar a variável $dia
2- Caso $dia="Sábado",
escreve "Fico em casa"; Termina
o switch;
3- Caso $dia="Domingo", escreve
"Vou passear"; Termina o switch;
4- Caso default, escreve "É
dia da semana, vai trabalhar!!!";
NOTA: O Default é
sempre executado, sempre que nenhum dos
"case" anteriormente declarados,
seja o estado da variável que estamos
a testar.
Uma forma de facilitar múltiplas
opções que utilizam o mesmo
código, em vez de estar a repetir
o código para cada opção
comum utilizamos a seguinte implementação
do switch:
<?
switch($dia)
{
case "Sábado":
case "Domingo": echo "Estamos
no Fim de Semana"; break;
default: echo "Estamos num dos dias
da semana!";
}
?>
Assim, caso o $dia seja "Sábado"
ou "Domingo", ambos executarão
o mesmo código. Caso $dia seja outro
valor qualquer, utiliza a opção
default.
Exercício 5:
Dada a variável $mes
com um valor entre 1 e 12, constrói
2 switch, onde o primeiro indicara o mês
do ano, e o segundo indicará a estação
do ano. Ambos os switch devem de ter uma
condição "default":
o primeiro deverá dizer "Mes
inválido"; e o segundo "Estação
invalida"; para um numero inferior
a 1 ou superior a 12.
Exemplo1:
$mês=1;
Output
do script:
"Mês Janeiro, estação
Inverno";
Exemplo2:
$mês=4;
Output
do script:
"Mês Abril, estação
Primavera";
Exemplo3:
$mês=7;
Output
do script:
"Mês Julho, estação
Verão";
Resumo:
Podemos utilizar o switch para validar múltiplos
estados de uma variável, evitando
assim sucessivos If..else. Podemos ainda
agrupar diversos casos de uma variável,
para que qualquer um desses casos executem
o mesmo código. A instrução
break, termina a execução
do Switch.
|