O que seria a estrutura de decisão? A estrutura decisão é uma estrutura que se faz uma pergunta e ela irá retornar um dos valores booleanos: true ou false (verdadeiro ou falso). E através do retorno de um desses valores a estrutura tomará uma decisão.
Exemplo:
Um avião é um meio de transporte? SE for verdadeiro, ele é um meio de transporte. SE NÃO, ele não é um meio de transporte.
Antes de entrar na estrutura de decisão, vamos falar dos operadores de comparação e lógicos.
Os operadores condicionais e lógicos são:
Para entendermos os operadores lógicos, primeiramente precisamos entender a forma como eles funcionam. E para isso irei utilizar para a explicação a tabela verdade para um melhor entendimento.
Vamos iniciar a tabela verdade pelo operador "E". A condição "E" funciona apenas quando todos os valores são verdadeiros.
Diferentemente da tabela "E" a tabela "OU" os resultados são verdadeiros quando apenas uma das condições assumem o valor verdadeiro.
Essa foi uma pequena introdução para entendermos como funciona as estruturas de decisões. A partir disso podemos começar a falar das estruturas em si, o PHP possui duas estruturas condicionais. São elas o IF e o SWITCH, cada uma possui a sua particularidade e sintaxe. Vamos iniciar falando do IF e sua sintaxe.
Em tradução direta o IF se traduz SE, então ele funciona da seguente forma:
Se(condição)faça ...
Ele possui também mais dois comandos que funciona caso a função IF não atenda a condição, ele é o ELSE e o ELSE IF que em tradução direta se torna SE NÃO e SE NÃO SE. Então irei mostrar como fica a utilização do SE e o SE NÃO e depois o SE, SE NÃO e SE NÃO SE e logo em seguida a sintaxe dos mesmos em linguagem PHP. As estruturas ficam da seguinte forma:
Se(condição)faça ... Se Não ...
Se(condição)faça ... Se Não Se(condição)faça ... Se Não ...
Já sua estrutura em PHP fica da seguinte forma:
if(codição){ ... }else if(condição){ ... }else{ ... }Não necessariamente é preciso das chaves para apenas um comando, caso haja apenas uma linha de código dentro da condição. Irei da um exemplo para cada operador condicional citado a cima em um algoritmo que tenha que exibir uma mensagem. E cada algoritmo será escrito de duas formas tanto com chave quanto sem chave e os dois últimos algoritmos serão com os operadores lógicos.
Exemplo:
Operador Igual if(15 == 20){ echo"Números Iguais"; }else{ echo"Números Diferentes"; } if(15 == 20) echo"Números Iguais"; else echo"Números Diferentes"; Resultado: Números DiferentesEsse algoritmo pode ser escrito tanto de uma forma quanto de outra por ter apenas uma informação dentro da condição.
Operador Diferente if(15 != 20){ echo"Números Diferentes"; }else{ echo"Números Iguais"; } if(15 != 20) echo"Números Diferentes"; else echo"Números Iguais"; Resultado: Números Diferentes
Maior Que $var1 = 15; $var2 = 20; if($var1 > $var2){ echo"var1 maior que var2"; }else{ echo"var1 menor que var2"; $var1 = 5; } if($var1 > $var2) echo"var1 maior que var2"; else{ echo"var1 menor que var2"; $var1 = 5; } Resultado: var1 menor que var2Nesse caso em especifico o ELSE do segundo exemplo possui chave, mas ele possui porque ele tem dois comandos a ser executados após a condição dele ser atendida.
Menor Que $var1 = 15; $var2 = 20; if($var1 < $var2){ echo"var1 menor que var2"; }else{ echo"var1 maior que var2"; } if($var1 < $var2) echo"var1 menor que var2"; else echo"var1 maior que var2"; Resultado: var1 menor que var2
Maior Igual $var1 = 20; $var2 = 20; if($var1 >= $var2){ echo"$var1 maior ou igual $var2"; else echo"$var1 menor que $var2"; } if($var1 >= $var2) echo"$var1 maior ou igual $var2"; else echo"$var1 menor que $var2"; Resultado: 20 maior ou igual 20Nesse caso estou imprimindo o valor armazenado nas variáveis.
Menor Igual $var1 = 19; $var2 = 20; if($var1 <= $var2){ echo"$var1 menor ou igual $var2"; else echo"$var1 maior que $var2"; } if($var1 <= $var2) echo"$var1 menor ou igual $var2"; else echo"$var1 maior que $var2"; Resultado: 19 menor ou igual 20
Negação $var1 = 20; $var2 = 20; if(!($var1 == $var2)){ echo"$var1 igual $var2"; else echo"$var1 diferente $var2"; } if(!($var1 == $var2)) echo"$var1 igual $var2"; else echo"$var1 diferente $var2"; Resultado: 20 diferente 20
Utilizando o ELSE IF $var1 = 3; if($var1==2){ echo"1"; }else if($var1==3){ echo"2"; }else if($var1==3){ echo"3"; }else{ echo"4"; } Resultado: 3
O que acontece acontece aqui é que eu sair comparando a variável $var1 todos os números postos para comparação a fim de achar o número que fosse igual ao da minha variável, como eu não acho na primeira comparação, continuo verificando com as outras opções e é para isso que o ELSE IF serve, para adicionar outras possibilidades para a comparação.
Caso o valor da minha variável fosse maior que todos os números postos lá para a verificação, ele entraria no ELSE, pois ele serve ali como ultima opção caso não satisfaça nenhuma condição.
Utilizando agora os operadores lógicos:
Operador "E" if(1==1 && 2==2){ echo"Verdadeiro"; }else{ echo"falso"; } Resultado: Verdadeiro if(1!=1 && 2==2){ echo"Verdadeiro"; }else{ echo"Falso"; } Resultado: Falso
Na primeiro IF as duas operações são true quando 1 é igual a 1 e 2 igual a 2, isso resulta na impressão do Verdadeiro, sendo que o "E" ele só é VERDADEIRO quando todas as operações são verdadeiras.
Operador "OU" if(1==1 || 2==2){ echo"Verdadeiro"; }else{ echo"falso"; } Resultado: Verdadeiro if(1!=1 || 2==2){ echo"Verdadeiro"; }else{ echo"Falso"; } Resultado: VerdadeiroDiferente do "E", se ele possui uma operação verdadeira o resultado da impressão vai ser Verdadeiro, mesmo se tivesse muitas operações que o resultado fosse false.
Operador "E" e "OU" if((1==1 && 2==2) || 3==3){ echo"Verdadeiro"; }else{ echo"falso"; } Resultado: Verdadeiro if((1==1 && 2==3) || 3==3)){ echo"Verdadeiro"; }else{ echo"Falso"; } Resultado: Verdadeiro if((1==1 && 2==3) || 3==4)){ echo"Verdadeiro"; }else{ echo"Falso"; } Resultado: Falso
No primeiro caso o resultado é verdadeiro porque as duas primeiras operações então ligadas pelo operador lógico "E" e o retorno delas duas que só serão true se todas as duas forem verdadeiras e esse retorno será comparado pelo operador lógico "OU" com a terceira operação, como a primeira já é verdadeira, não seria mais necessário a comparação porque para o operador "OU" basta apenas uma condição ser verdadeira para o retorno ser verdadeiro independentemente das outras operações.
No segundo caso as duas primeira operação ligadas pelo "E" retorna false, já a terceira retorna verdadeiro, como a operação é com o "OU" é como dito anteriormente basta uma operação ser verdadeira para o resultado ser verdadeiro.
Já no terceiro caso as duas primeiras ligadas pelo "E" retornam false e a terceira também retorna false como não há nenhuma verdadeira, a impressão na tela será Falso.
Agora iremos começar a falar do SWITCH, possui uma grande semelhança com o IF em relação ao casos, quando o IF possui mais de duas possibilidades sem ser uma generalizada utilizamos o comando ELSE IF, já o SWITCH possui a estrutura CASE que são para CASOS específicos. Vamos entender como funciona a estrutura do SWITCH e logo depois colocamos em linguagem PHP.
Como ele trabalha apenas com casos específicos, ele só ira trabalhar com igualdade onde o que você quer deverá ser igual a algum caso especificado em seu algoritmo. Por exemplo:
Agora iremos começar a falar do SWITCH, possui uma grande semelhança com o IF em relação ao casos, quando o IF possui mais de duas possibilidades sem ser uma generalizada utilizamos o comando ELSE IF, já o SWITCH possui a estrutura CASE que são para CASOS específicos. Vamos entender como funciona a estrutura do SWITCH e logo depois colocamos em linguagem PHP.
Como ele trabalha apenas com casos específicos, ele só ira trabalhar com igualdade onde o que você quer deverá ser igual a algum caso especificado em seu algoritmo. Por exemplo:
PEGUE S VARIAVEL($var1) E COMPARE CASO FOR IGUAL A "1" FAÇA ... PARE CASO FOR IGUAL A "2" FAÇA ... PARE SE NÃO IR IGUAL A NENHUMA FAÇA ... PAREEssa é a estrutura onde ele irá verificar todas as situações que ele poderá ir que será informada pelo desenvolvedor.
Agora vamos ver a estrutura em PHP e logo em seguida irei explicar a estrutura.
$var1 = 12; switch($var1){ case 3: acho"valor: 3"; break; case 6: acho"valor: 6"; break; case 12: acho"valor: 12"; break; default: echo"Não identificado!"; } Resultado: valor: 12Nesse exemplo que dei ele vai pegar a variável $var1 que possui o valor 12 e vai comparar, CASO o valor seja 3, ele irá imprimir na tela: "valor: 3", CASO seja 6: "valor: 6", CASO seja 12: "valor: 12" e CASO ele não possua nenhum dos valores postos pelo desenvolvedor, ele vai entrar em uma exceção e imprime na tela: "Não identificado".
Porque se utiliza o BREAK? É utilizado para que ele interrompa a execução do SWITCH, caso não utilize o BREAK, após ele encontrar o valor desejado continuará percorrendo verificando todas as possibilidades, isso é ruim porque atrasa o tempo de execução e caso o SWITCH possua o DEFAULT além da execução do que é englobado pelo valor que deveria ser encontrado, ele também irá executar tudo que se encontra no DEFAULT.
E aqui finalizamos a parte de Estrutura de Decisão. Todos os códigos PHP postados aqui, vocês podem coloca-los no WampServer e está executando para ver como será o retorno dos resultados. Continuem ligados no TURIMLAB para mais posts sobre PHP e tudo sobre tecnologia.
Dicas e sugestões podem colocar nos comentários!
0 comentários:
Postar um comentário