HOME PAGE JAVASCRIPT
Botões Cálculos Datas Essenciais Janelas Flutuantes Menus
HTML CSS FLASH PHP ASP GERADORES CORES MISCELANEA Contato  






Introdução a linguagem PHP - Break e Continue

As estruturas de repetição (while, do while e etc..) são caracterizadas por comandos que servem para manter uma porção do código executando repetidamente até que determinada condição seja satisfeita. Porém em algumas situações é necessária a inclusão de determinadas condições que fogem um pouco da real função da estrutura. Quando isso acontece os comandos BREAK e CONTINUE acabam ajudando muito e se tornam a saída para conseguir se implementar a lógica necessária.

Break

O função do BREAK serve para forçar a saída em um loop.

Apesar do exemplo abaixo estar preparado para imprimir na tela do número 1 até o 7, ele chega apenas até o número 2 e interrompe o loop "for". Isso acontece porque criamos uma condição extra de parada usando break.

Exemplo 1:

<?php
for($valor = 1; $valor <= 7; $valor++) {
   if ($valor == 3) {
     break;
   }
   print "$valor<br>";
}
?>

Resultado:

1
2

No exemplo abaixo dentro da estrutura temos uma condição que diz que se o valor da chave for divisível por 10 imprime o par chave/valor e interrompe o loop foreach

Exemplo 2:

<?php
 $a = array (
 "um" => 1,
 "dois" => 2,
 "três" => 3,
 "quatro" => 10,
 "cinco" => 17,
 "seis" => 18,
 "sete" => 19,
 "oito" => 20,
 "nove" => 22
 );
 foreach ($a as $k => $v) {
   if ($v%10 == 0) {
     echo "\$a[$k] => $v.\n";
     break;
   }
 }
?>

Resultado:

$a[quatro] => 10.

Break - valor opcional

O break pode receber um valor opcional, numerico, indicando quantos níveis devem ser encerrados, caso possua estruturas de controle aninhadas.

O exemplo abaixo mostra como se pode usar o valor opcional do Break.

<?php

$i = 0;
while (++$i) { // estrutura 1
    switch ($i) { // estrutura 2
	 case ($i==3):
	        comandos a executar;
	        
	        break N;
	        /*se N for 1, sai do loop switch. 
	        Se N for 2, sai do loop switch e do loop while, pois temos 2 níveis de estrutura aninhada.
	        Se N for maior 2 vai gerar erro fatal.*/
	        
	 case ($i==5):
	    
	         for($valor = $i; $valor <= 7; $valor++) { // estrutura 3
			if ($valor == 6) {
				comandos a executar;
				     
				break N;
				/*se N for 1, sai do loop for. Se N for 2, sai do loop for e do switch.
				Se N for 3, sai do loop for, switch e while, 
				pois temos 3 níveis de estrutura aninhada.
				Se N for maior 3 vai gerar erro fatal*/

			}
		}

	case ($==7):
	       echo "Sai do loop switch e do loop while. $i";
	     	break N;
	     	/*se N for 1, sai do loop switch.
	     	Se N for 2, sai do loop switch e do loop while,
	     	pois temos 2 níveis de estrutura aninhada.
	     	Se N for maior 2 vai gerar erro fatal.*/
	default:
	        break;
    }
}

?> 

Exemplo prático:

<?php
$i = 0;
while (++$i) {
  switch ($i) {
    case ($i%7==0):
      echo 'Sai do loop switch. $i='.$i."<br>";
      break 1;
    case ($i%9==0):
      for($valor = $i; $valor <= 13; $valor++) {
        if ($valor == 11) {
          echo 'sai do loop for e do loop switch. $valor= '.$valor.' e $i='.$i."<br>";
          break 2;
        }
      }
    case ($i%13==0):
      echo 'Sai do loop switch e do loop while. $i='.$i."<br>";
      break 2;
    default:
      break;
  }
}
?> 

Resultado:

Sai do loop switch. $i=7
sai do loop for e do loop switch. $valor= 11 e $i=9
Sai do loop switch e do loop while. $i=13

Continue

O comando "Continue" serve para avançar o código para o próximo ciclo de repetição sem executar as instruções que estão após o mesmo.

Exemplo:

<?php
for($valor = 0; $valor <= 10; $valor++) {
    if ($valor%2==0) {
        continue; // se o resto da divisão de $valor por 2 for 0 volta para o inicio
    }
    print $valor." ";
}
?>

Resultado:

1 3 5 7 9