O Switch. Já vimos como podemos usar o IF..else para criar-mos escolhas entre blocos de códigos a executar. E vimos também, como multiplos IF's podem ser encadeados, para podermos atingir diversas situações. Um dos exemplos utilizados foi: If ($dia=="Sabado") 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 hipoteses. 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çao (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: Vou explicar passo a passo. Primeiro, indicamos à função switch() qual a variável estamos a testar: neste caso a variavel $dia. Depois abrimos um bloco de código desta função, onde declaramos os casos ou estados da variavel. 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 expecificar um caso "default", para a ocasião de nenhum dos "cases" anteriores, seja o estado pretendido. Seguindo a logica do script temos a seguinte interpretaçao: 1- Indicaçao de que vamos validar a variável $dia 2- Caso $dia="Sabado", 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 multiplas opcções que utilizam o mesmo código, em vez de estar a repetir o codigo para cada opção comum utilizamos a seguinte implementação do switch: Assim, caso o $dia seja "Sabado" ou "Domingo", ambos executarão o mesmo código. Caso $dia seja outro valor qualquer, utiliza a opção default. Exercicio 5: Dada a variável $mes com um valor entre 1 e 12, constroi 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: $mes=1; Output do script: "Mês Janeiro, estação Inverno"; Exemplo2: $mes=4; Output do script: "Mês Abril, estação Primavera"; Exemplo3: $mes=7; Output do script: "Mês Julho, estação Verão"; Resumo: Podemos utilizar o switch para validar multiplos estados de uma variável, evitando assim sucessivos If..else. Podemos ainda agrupar diversos casos de uma variavel, para que qualquer um desses casos executem o mesmo código. A instrução break, termina a execução do Switch. ########################################################################## # Autor: [Dragon] # # Email: dragon@cidadela.org # # URL: http://www.cidadela.org # # Última revisão: 2001/01/15 # ##########################################################################