CAPITULO 5 COMANDO DE FLUXO IF Sempre que for necessária a tomada de decisão dentro de um programa, você terá que utilizar um comando condicional, pois é por meio dele que o PHP decidirá que lógica deverá seguir (por exemplo, se salário maior que 1000, então aumento = 10%, senão aumento = 15%). Existem dois comandos condicionais: if e switch. Ambos fazem basicamente a mesma coisa; executam um conjunto de instruções conforme parâmetros de decisão. Na utilização de uma condicional if ou switch, utilizamos sempre um operador condicional. Operadores condicionais executam testes entre o conteúdo de uma variável e outra variável ou literal. Por exemplo, Salário é maior do que 1000, Desconto é igual a 10%, preço é menor que 4. Os operadores condicionais retornam invariavelmente os operadores booleanos TRUE ou FALSE (verdadeiro ou falso). Operador Oper1 == oper2 Oper1!= oper2 Oper1 <> oper2 Oper1 > oper2 Oper1 >= oper2 Oper1 < oper2 Oper1 <= oper2 Descrição Verdadeiro se oper1 for igual a oper2 Verdadeiro se oper1 for diferente de oper2 Outra forma aceita para diferente Verdadeiro de oper1 for maior que oper2 Verdadeiro se oper1 for maior ou igual que oper2 Verdadeiro se oper1 for menor que oper2 Verdadeiro se oper1 for menor ou igual que oper2 IF, ELSE, ELSEIF Comando utilizado para executar um conjunto de instruções, caso a expressão avaliada seja verdadeira. No algoritmo, seria se, senão, senão se. Sua sintaxe básica é: if( EXPRESSAO1 ) { comandos 1 elseif( EXPRESSAO2 ) { comandos 2 else { comandos 3 Comando de fluxo IF 1
Veremos abaixo alguns exemplos utilizando a estrutura if Exemplo SALÁRIO Uma variável chamada $salario receberá como valor de 1500.00. Em uma condicional, caso a variável $salario seja maior ou igual a 1500.00, a mensagem que aparecerá será Bom salário. Senão, aparecerá a mensagem Salário baixo. $salario = 1500.00; if ($salario >= 1500.00) { echo Bom salário : $salario<br> ; else { echo Salário baixo $salario<br> ; Exemplo controle de estoque Agora, vamos montar um formulário em HTML que irá receber a quantidade em estoque de um produto qualquer. Dependendo da quantidade que será digitada, através da condicional IF será impresso na tela uma mensagem diferente. EXEMPLO: CONTROLE DE ESTOQUE <BR><BR> <form method="get"> Quantidade em estoque: <input type="text" name="quantidade" size="20"><br> if ($_GET) { // As linhas abaixo somente serão executadas se o submit for clicado $estoque = $_GET['quantidade']; if($estoque>=80) { echo "O estoque está muito alto"; elseif($estoque>=30) { echo "O estoque está em níveis normais"; Comando de fluxo IF 2
else { echo "O estoque está abaixo do mínimo"; Quando existe apenas uma instrução a executar, o uso das chaves é opcional. Mas no caso de um conjunto de comandos, é obrigatório o seu uso; caso contrário, o PHP executará de forma errada. Exemplo somando dois valores (usando operadores matemáticos) <form method="post"> SOMANDO SALÁRIO E BENEFÍCIOS <BR><BR> Salário: <input type="text" name="salario" size="15"><br> Benefícios: <input type="text" name="beneficios" size="15"><br> if ($_POST) { // As linhas abaixo somente serão executadas se o submit for clicado $salario = $_POST['salario']; $beneficio = $_POST['beneficio']; $total = $salario + $beneficio; echo VALOR TOTAL $total ; OPERADORES ARITMÉTICOS Operador Função Exemplo + Soma $a + $b, 5 + 4, $salario + $bonus + 100 - Subtração $a - $b, $salario - $desconto - $impostos * Multiplicação $salario * 1.15, $a * $b, $c * $d * 15 / Divisão $a / $b, $b / 5, 15 / 3 % Módulo $a % $b (resto da divisão de $a por $b) Comando de fluxo IF 3
Exemplo controle de horário acadêmico (usando operador lógico) <form method="get"> CONTROLE DE HORÁRIO ACADÊMICO <BR><BR> Horário: <input type="text" name="horario" size="5">(siga o formato: 08:00)<br> $hora =$_GET['horario']; if($hora=='08:00' or $hora=='10:00') { echo "$hora = Horário do turno da manhã"; elseif($hora=='14:00' or $hora=='16:00') { echo "$hora = Horário do turno da tarde"; elseif($hora=='18:00' or $hora=='20:00') { echo "$hora = Horário do turno da noite"; else { echo $hora >>>>> este horário não está disponível OPERADORES LÓGICOS Exemplo Nome Resultado $a and $b E Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros. $a or $b OU Verdadeiro se $a ou $b são verdadeiros. $a xor $b XOU Verdadeiro se $a ou $b são verdadeiros, mas não ambos.! $a NÃO Verdadeiro se $a não é verdadeiro. $a && $b E Verdadeiro se tanto $a quanto $b são verdadeiros. $a $b OU Verdadeiro se $a ou $b são verdadeiros. COMANDO DE FLUXO SWITCH O comando switch é muito similar ao comando if. Ambos decidem se executam ou não um conjunto de instruções, baseando-se na condição de uma expressão. A diferença encontra-se na forma de avaliar a expressão e na sua organização. O comando if aceita qualquer operador condicional, enquanto o switch utiliza sempre o Comando de fluxo IF 4
operador condicional de igualdade. O switch utiliza o comando case, que indica o fluxo que a condição deverá obedecer. Já o comando de quebra de fluxo break interrompe o processamento do switch, quando a condição for satisfeita. O comando default pode ser comparado ao else do comando if. Se nenhuma das condições case forem satisfeitas, o último fluxo é o default. No exemplo abaixo, criamos um formulário em HTML para receber uma determinada opção que poderá ser a, b ou c, em letra minúscula. A cada uma dessas opções digitadas, será mostrada uma determinada mensagem. <form method="get"> DIGITE OPÇÃO COM LETRA MINÚSCULA: <input type="text" name="opcao" size="5"><br> $opcao=$_get['opcao']; switch($opcao) { case 'a': echo "a opção escolhida foi abrir um arquivo"; case 'b': echo "você decidiu sair do aplicativo"; case 'c': echo "excluir arquivo"; default: echo "a opção escolhida não foi implementada ou indisponível"."<br>"; echo "favor escolher uma opção válida"; Comando de fluxo IF 5
EXERCÍCIOS 1) Faça um formulário em html que contenha 2 inputs do tipo text com o nome e a idade de uma pessoa. Utilizando PHP, através da estrutura condicional If, escreva o seguinte algoritmo: se a idade digitada no formulário é maior ou igual a 18, ou menor que 18. As mensagens que deverão ser exibidas na tela deverão ser as seguintes: Se idade >= 18 então exibir a mensagem Maior de idade, não precisa de responsável, Senão exibir a mensagem Menor de idade, somente com a presença do responsável. 2) Crie um formulário HTML que contenha uma tag select cujo name seja tempo, e com 3 tags options cujo value sejam : sol, chuva, nublado. Usando PHP, e a condicional switch, e com base na opção escolhida pelo usuário, faça o seguinte algoritmo: Se o valor do tempo for igual a sol, exiba na tela Levar bronzeador' Se o valor do tempo for igual a chuva, exiba na tela Levar guarda-chuva Se for nublado, exiba na tela Não leva nada. Próximo Capítulo: ESTRUTURA DE REPETIÇÃO Comando de fluxo IF 6