1) O documento apresenta uma aula sobre estruturas de controle condicional e repetição na linguagem PHP. 2) São explicados os comandos IF/ELSE, SWITCH e as estruturas de repetição WHILE, DO/WHILE e FOR. 3) Exemplos e exercícios são fornecidos para demonstrar o uso dessas estruturas.
4. Estruturas de controle
condicional
Para que usar ?
● Usamos para codificar uma tomada de
decisão
● Utilizamos uma expressão lógica para
decidir por qual fluxo de execução o
programa deve seguir
01/12/12 Desenvolvimento Web I 4/53
6. Estrutura Condicional
Simples
● Introduz um desvio condicional, ou seja, um
desvio na execução natural do programa
● Útil quando necessita-se de duas opções de
fluxo para serem seguidas com base no
resultado do teste lógico
– Verdadeiro
– Falso
01/12/12 Desenvolvimento Web I 6/53
7. Estrutura Condicional
Simples
SE (teste) ENTÃO
{
comandos …
}
CASO CONTRÁRIO
{
comandos …
}
01/12/12 Desenvolvimento Web I 7/53
8. Fluxo do Comando if
início
Comando IF fim
[TRUE]
[FALSE]
Comando ELSE
01/12/12 Desenvolvimento Web I 8/53
9. if … else
if (teste)
{
Comandos se teste é verdadeira
}
else
{
Comandos se teste é falsa
}
01/12/12 Desenvolvimento Web I 9/53
10. Exemplo
$a = 1;
if ($a==5)
{
echo “é igual”;
}
else
{
echo “não é igual”;
}
01/12/12 Desenvolvimento Web I 10/53
11. Estrutura Condicional
Aninhada
● Utilizamos quando necessitamos realizar
testes encadeados
● O fluxo de execução irá depender de um ou
mais testes lógicos
01/12/12 Desenvolvimento Web I 11/53
12. Exemplo
$salario =1020;
$tempo_servico =12;
$tem_reclamacoes =false;
if($salario > 1000)
{
if($tempo_servico >= 12)
{
if($tem_reclamacoes != true)
{
echo 'parabéns, você foi promovido';
}
}
}
01/12/12 Desenvolvimento Web I 12/53
13. Exercício
Refaça o código utilizando apenas uma
estrutura IF
01/12/12 Desenvolvimento Web I 13/53
14. Exercício
Refaça o código utilizando apenas uma
estrutura IF
$salario =1020;
$tempo_servico =12;
$tem_reclamacoes =false;
if(($salario > 1000) && ($tempo_servico >= 12) and
($tem_reclamacoes != true))
{
echo “parabéns, você foi promovido <br />”;
}
01/12/12 Desenvolvimento Web I 14/53
15. Exercício
● Dado um número, imprima se ele é par ou
ímpar
01/12/12 Desenvolvimento Web I 15/53
16. Exercício
● Dado um número, imprima se ele é par ou
ímpar
if($a%2==0)
echo "$a é par";
else
echo "$a é ímpar";
01/12/12 Desenvolvimento Web I 16/53
17. …?…:…
$valor = 1001;
if($valor > 1000)
{
$resultado = 'muito caro';
}
else
{
$resultado = 'pode comprar';
}
echo $resultado;
01/12/12 Desenvolvimento Web I 17/53
18. …?…:…
$valor = 1001;
$resultado = ($valor > 1000) ? 'muito caro' : 'pode comprar';
echo $resultado;
01/12/12 Desenvolvimento Web I 18/53
19. …?…:…
$valor = 1001;
$resultado = ($valor > 1000) ? 'muito caro' : 'pode comprar';
echo $resultado;
A primeira expressão é a condição a ser avaliada
A segunda é o valor caso verdadeiro
A terceira é o valor caso seja falsa
teste ? true : false
01/12/12 Desenvolvimento Web I 19/53
20. Exercício
a) Elabore um script que receba 2 números
e imprima qual é o maior e qual é o menor.
b) Dados 3 números, faça um scritp que
imprima em ordem crescente e depois em
ordem decrescente os 3 números.
01/12/12 Desenvolvimento Web I 20/53
21. Exercício a
$a = $_GET['a'];
$b = $_GET['b'];
$maior = $a>$b ? $a : $b;
$menor = $a<$b ? $a : $b;
echo “O maior é $maior”;
echo “O menor é $menor”;
01/12/12 Desenvolvimento Web I 21/53
22. Exercício b
$n = $_GET['n'];
$m = $_GET['m'];
$o = $_GET['o'];
$menor = ($n<$m and $n<$o)?$n:(($m<$n and $m<$o)? $m: $o);
$maior = ($n>$m and $n>$o)?$n:(($m>$n and $m>$o)? $m: $o);
$meio = ($n!=$menor && $n!=$maior)? $n: (($m!=$menor && $m!=$maior)? $m: $o);
echo 'Em ordem crescente </br>';
echo 'O menor é '.$menor;
echo ' ,o do meio é '.$meio;
echo ' e o maior é '.$maior;
echo '</br> Em ordem decrescente </br>';
echo 'O maior é '.$maior;
echo ' ,o do meio é '.$meio;
echo ' e o menor é '.$menor;
01/12/12 Desenvolvimento Web I 22/53
23. Estrutura de Múltipla
Escolha
● Aplicadas para os casos em que a
avaliação da expressão de testes, tem mais
de dois valores possíveis como resultado
01/12/12 Desenvolvimento Web I 23/53
24. Estrutura de Múltipla
Escolha
TRUE
caso comandos
FALSE
TRUE comandos FIM
caso
FALSE
TRUE comandos
caso
FALSE default
01/12/12 Desenvolvimento Web I 24/53
25. switch
switch ($valor)
{
case “valor_1”:
//comandos
break;
case “valor_2”:
//comandos
break;
case “valor_n”:
//comandos
break;
defaul:
defaul
//comandos
}
01/12/12 Desenvolvimento Web I 25/53
26. Exemplo
$i = 1;
switch ($i)
{
case 0:
echo “i é igual a 0”;
break;
case 1:
echo “i é igual a 1”;
break;
case 2:
echo “i é igual a 2”;
break;
default:
echo “i é igual a 0, 1 ou 2”;
}
01/12/12 Desenvolvimento Web I 26/53
27. Exemplo
switch ($i) {
case 0:
case 1:
case 2:
echo "número positivo menor que 3";
break;
case 3:
echo "número igual a 3";
break;
default: echo 'número maior que 3';
}
01/12/12 Desenvolvimento Web I 27/53
28. Exercício
Faça um algoritmo que dado uma letra
imprima se é ou não uma consoante.
Ex.: localhost/letra.php?letra=“a”
Resultado:
'a' não é uma consoante
01/12/12 Desenvolvimento Web I 28/53
29. Exercício
switch ($letra) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
Echo " '$letra não' é uma consoante";
break;
default: echo " '$letra' é uma consoante";
}
01/12/12 Desenvolvimento Web I 29/53
31. Estruturas de Repetição
Qual o objetivo ?
● Fazer com que o computador repita um
bloco de comandos enquanto uma
determinada condição seja satisfeita
01/12/12 Desenvolvimento Web I 31/53
33. Repetição com teste no
início
● Repete um determinado bloco de comando
0 ou mais vezes, enquanto uma
determinada condição for é satisfeita
01/12/12 Desenvolvimento Web I 33/53
34. while
while (expressão)
{
comandos
}
01/12/12 Desenvolvimento Web I 34/53
35. Exemplo
$a = 0;
while ($a < 5)
{
echo “$a <br />”;
$a++;
}
01/12/12 Desenvolvimento Web I 35/53
36. Exemplo
$a = 0; Resultado:
while ($a < 5)
{
echo “$a <br />”;
$a++;
}
01/12/12 Desenvolvimento Web I 36/53
37. Repetição com teste no
final
● Semelhante ao anterior difere apenas na
posição do teste, que é feito no final
01/12/12 Desenvolvimento Web I 37/53
38. do … while
do
{
comandos
}
while(teste)
01/12/12 Desenvolvimento Web I 38/53
39. Exemplo
$a = 5;
do
{
echo “a = $a <br /> vou repeti”;
--$a;
}while($a>0)
01/12/12 Desenvolvimento Web I 39/53
40. Exemplo
$a = 5;
do
{
echo “a = $a <br /> vou repeti”;
--$a;
Resultado:
}while($a>0)
01/12/12 Desenvolvimento Web I 40/53
41. Repetição com variável
de controle
● Usada quando sabemos previamente o
número de repetições que precisam ser
executadas
● O número de repetições é determinado por
uma variável de controle
01/12/12 Desenvolvimento Web I 41/53
42. for
for(expressão1; expressão2; expressão3)
{
comandos
}
01/12/12 Desenvolvimento Web I 42/53
43. Exemplo
for($i = 0; $i <= 5; $i++)
{
print “$i <br />”;
}
01/12/12 Desenvolvimento Web I 43/53
44. Exemplo
for($i = 0; $i <= 5; $i++)
{
print “$i <br />”;
}
Resultado:
01/12/12 Desenvolvimento Web I 44/53
45. Exercício
● Dado um número, elabore um script que
imprima a tabuada de 0 até 10 do número
dado.
Ex.: localhost/tabuada.php?n=3
01/12/12 Desenvolvimento Web I 45/53
46. Exercício
Ex.: localhost/tabuada.php?n=3
for($i=0;$i<=10;$i++)
{
echo "$n x $i = ".$n*$i."<br />";
}
01/12/12 Desenvolvimento Web I 46/53
47. Exercício
Faça um script que imprima os n primeiros
números da sequência de Fibonacci.
Ex.: localhost/fib.php?n=7
0112358
01/12/12 Desenvolvimento Web I 47/53