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 Diferentes
Esse 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 var2
Nesse 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 20
Nesse 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: Verdadeiro
Diferente 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
...
PARE
Essa é 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: 12
Nesse 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