Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Estrutura de repetição com for Sintaxe for (inicialização; condição; incremento) { comando1; comando2; } A inicialização atribui um valor inicial à variável de controle do laço; Os comandos 1 e 2 serão executados até que a condição se torne falsa. Nesse caso, a execução continua no primeiro comando após o laço; O modo como a variável de controle cresce é definido em incremento. Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Estrutura de repetição com for Exemplo Resultado <?php 2x1=2 2x2=4 2x3=6 2x4=8 2 x 5 = 10 for ($x = 1; $x <= 5; $x++) { $res = $x * 2; echo "2 x $x = $res<br>"; } /* No fim do laço, x é incrementado de acordo com o definido. */ /* A tag <br> serve para inserir uma quebra de linha no documento HTML. */ ?> Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Estrutura de repetição com while Sintaxe while (condição) { comando1; comando2; } Os comandos 1 e 2 serão executados até que a condição se torne falsa. Nesse caso, a execução continua no primeiro comando após o laço; Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Estrutura de repetição com while Exemplo Resultado <?php 5x1=5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 $x = 1; while ($x <= 10) { $res = $x * 5; echo "5 x $x = $res<br>"; $x++; } ?> Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Estrutura de repetição com do...while Sintaxe do { comando1; comando2; } while (condição); Os comandos 1 e 2 serão executados até que a condição se torne falsa. Nesse caso, a execução continua no primeiro comando após o laço; A primeira iteração sempre ocorrerá. As demais dependem da condição. Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Estrutura de repetição com do...while Exemplo Resultado <?php 9x1=9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81 9 x 10 = 90 $x = 1; do { $res = $x * 9; echo "9 x $x = $res<br>"; $x++; } while ($x <= 10); ?> Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Exercícios propostos 1) Criar um script em PHP capaz de verificar se um número lido (GET) é primo ou não. 2) Criar um script em PHP para mostrar 20 números da sequência de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13,...). 3) Criar um script em PHP para ler 2 números (GET) e mostrar todos os números pares entre eles (inclusive). Os números devem ser mostrados em ordem decrescente. 4) Criar um script em PHP para mostrar o fatorial de um número lido (GET). O cálculo do fatorial é feito da seguinte forma: n! = 1 x ... x n-1 x n Exemplo: 5! = 1 x 2 x 3 x 4 x 5 = 120 O fatorial de 0 é 1. Mostrar mensagem de erro para números lidos que sejam menores que 0. Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Exercícios propostos – Solução do exercício 1 Código-fonte Resultado (sendo num = 19) <?php O número 19 é primo! $x = $_GET['num']; $soma = 0; // Verifica quantidade de divisores de $x for ($cont = 1; $cont <= $x; $cont++) { if (($x % $cont)==0) { $soma++; } } /* O número primo tem no máximo dois divisores */ if ($soma <= 2) { echo "O número $x é primo!"; } else { echo "O número $x não é primo!"; } ?> Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Exercícios propostos – Solução do exercício 2 Código-fonte Resultado <?php 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 /* Inicializa variáveis com os primeiros valores da sequência Fibonacci */ $a = 0; $b = 1; $cont = 1; while ($cont <= 10) { /* Mostra valores na tela */ echo $a."<br>".$b."<br>"; /* Define novos valores a partir dos dois anteriores */ $a = $a + $b; $b = $a + $b; } ?> $cont++; Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Exercícios propostos – Solução do exercício 3 Código-fonte Resultado (sendo num1 = 3 e num2= 19) <?php 18 16 14 12 10 8 6 4 /* Lê valores através do GET */ $maior = $_GET['num1']; $menor = $_GET['num2']; /* Garante que $maior terá o maior valor */ if ($menor > $maior) { $temp = $maior; $maior = $menor; $menor = $temp; } /* Encontra e mostra os pares */ do { if (($maior % 2) == 0) { echo $maior."<br>"; } $maior--; } while($maior >= $menor); ?> Cláudio Barbosa [email protected] mar/2012 PHP – Estruturas de repetição Exercícios propostos – Solução do exercício 4 Código-fonte Resultado (sendo num = 6) <?php O fatorial de 6 é 720. /* Lê número através do GET */ $x = $_GET['num']; /* Exibe mensagem de erro para números negativos */ if ($x < 0) { echo "Número inválido!"; } else { /* Inicializa acumulador com elemento neutro da multiplicação */ $fatorial = 1; } ?> /* Acumula produtos de $x até 1 */ for ($cont = $x; $cont >= 1; $cont--) { $fatorial = $fatorial * $cont; } echo "O fatorial de $x é $fatorial."; Cláudio Barbosa [email protected] mar/2012