antiblock
diamwall
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
Sign in to follow this  
TheSubKIller aka Skinning

[NEW] O Switch

1 post in this topic

Boas Cyber-Gamers

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.

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this