
Comando BREAK: Interrompendo laços
Já estudamos o break quando estudamos o teste condicional SWITCH, e vimos que ele serve para um propósito bem simples: interromper o SWITCH.Ele também tem a mesma propriedade em laços como WHILE, DO WHILE e o FOR: quando o interpretador PHP encontra o comando BREAK, ele termina na hora, sumariamente, o laço que estiver sendo executado, sem dar tempo pra fazer mais nada.
O script abaixo, é em um laço WHILE, do tipo looping infinito, pois ele executa pra sempre.
O contador inicia em 1 e vai incrementando de um em um.
Ele só vai parar quando entrar um número que é múltiplo de 12 e 21, ao mesmo tempo.
Qual? Quando? Não sabemos, mas quando chegar lá, identificamos o número e damos um BREAK pra interromper o WHILE, veja:
<html> <head> <title>Apostila PHP Progressivo</title> </head> <body> <form action= method="get"> Tabuada do: <input type="text" name="tab" /><br /> <input type="submit" name="submit" value="Testar" /> </form> <?php $count = 1; while(1){ if($count%12==0 && $count%21==0){ echo "$count"; break; } $count++; } ?> </body> </html>Vamos supor que queiramos encontrar o primeiro múltiplo de 11 e 13, de 1 até 1 milhão, usando o laço FOR.
Vamos usar o comando BREAK para parar o laço, para que não seja necessário contar até 1 milhão:
<html> <head> <title>Apostila PHP Progressivo</title> </head> <body> <form action= method="get"> Tabuada do: <input type="text" name="tab" /><br /> <input type="submit" name="submit" value="Testar" /> </form> <?php for($count=1; $count<=1000000; $count++){ if($count%11==0 && $count%13==0){ echo "Parei no $count"; break; } } ?> </body> </html>Note que quando o número for múltiplo de 11 e 13 ao mesmo tempo (não sei quando vai ser isso, o computador que calcule), o laço vai parar, exibindo tal número.
O comando CONTINUE: Pulando iterações em PHP
O comando break tem uma peculiaridade: ele interrompe o laço, acaba com ele.Porém, muitas vezes não queremos acabar com o laço, e sim com a ITERAÇÃO, o looping do momento, queremos pular para a próxima 'rodada' de código do laço.
Para isso, usamos o comando CONTINUE.
Quando o interpretador do PHP encontra o continue; no meio do caminho, ele encerra a iteração atual e pula pra próxima, inclusive executando a expressão de modificação.
Lembra daquela brincadeira do Silvio Santos, onde você tinha que ir contando os números e nos múltiplos de 4 falar PIM, assim:
1, 2, 3, PIM, 5, 6, 7, PIM, 9, 10, 11, PIM...
Basta colocarmos pra imprimir de 1 até 100.
Dentro do laço, colocamos um IF para verificar se é múltiplo de 4.
Se for, imprimimos PIM e damos um continue, para o laço continuar no próximo número, veja como fica nosso código:
<html> <head> <title>Apostila PHP Progressivo</title> </head> <body> <form action= method="get"> Tabuada do: <input type="text" name="tab" /><br /> <input type="submit" name="submit" value="Testar" /> </form> <?php for($count=1; $count<=100; $count++){ if($count%4==0){ echo "PIM <br />"; continue; } echo "$count <br />"; } ?> </body> </html>O PHP sempre iria ganhar esse desafio com o Silvio Santos...claro, com um programador que tivesse estudado pelo PHP Progressivo.