Aula 08 - Controlo de Ciclos - break continue e Ciclos Aninhados.

article featured image

Nas últimas aulas aprendemos a utilizar estruturas de repetição para executar automaticamente um conjunto de instruções várias vezes.

Por exemplo:

Também aprendemos a percorrer arrays:

Nestes exemplos, o ciclo percorre normalmente todas as iterações previstas.

Mas nem sempre queremos que isso aconteça.

Podemos precisar de:

  • terminar um ciclo antes do fim;
  • ignorar determinada iteração;
  • procurar um valor e parar quando o encontrarmos;
  • executar um ciclo dentro de outro ciclo;
  • percorrer estruturas de dados mais complexas.

Nesta aula vamos aprender a controlar melhor os ciclos utilizando:

e conhecer os ciclos aninhados.

 

1. Controlar um ciclo

Considere:

O comportamento normal é:

Temos dez iterações.

Mas imagine que queremos parar quando chegarmos ao número 5.

Precisamos de uma forma de dizer ao PHP:

Termina imediatamente este ciclo.

Para isso podemos utilizar break.

 

2. A instrução break

Já conhecemos break da estrutura switch.

Também podemos utilizá-la nos ciclos.

Exemplo:

Resultado:

Quando:

a condição torna-se verdadeira e é executado:

O ciclo termina imediatamente.

 

3. Como funciona o break?

Podemos representar o processo desta forma:

O break não ignora apenas uma iteração.

O break termina completamente o ciclo onde é executado.

 

4. Procurar um valor

Uma aplicação bastante útil do break é uma pesquisa.

Considere:

Queremos percorrer os produtos até encontrar "Monitor".

O PHP percorre:

Não existe necessidade de continuar a procurar depois de termos encontrado o produto.

 

5. Saber se encontramos o produto

Podemos melhorar o exemplo.

No final:

A variável:

funciona como um indicador.

Inicialmente:

Se encontrarmos o produto:

Esta técnica é muito utilizada em programação.

 

6. A instrução continue

Existe outra situação.

Imagine que queremos percorrer os números de 1 a 10, mas não queremos apresentar o número 5.

Não queremos terminar o ciclo.

Queremos apenas ignorar essa iteração.

Utilizamos:

Exemplo:

Resultado:

Repare que o ciclo não terminou no número 5.

Apenas não executou o restante código dessa iteração.

 

7. Como funciona o continue?

Podemos pensar:

Esta diferença deve ficar muito clara:

 

8. break ou continue?

Considere:

Com break

Resultado:

Com continue

Resultado:

Portanto:

InstruçãoO que acontece?
breakTermina completamente o ciclo
continuePassa imediatamente para a próxima iteração

 

9. Um exemplo mais realista com continue

Considere um conjunto de classificações:

Vamos imaginar que:

significa que o aluno faltou e, por isso, esse valor não deve ser processado.

Podemos fazer:

Resultado:

Quando encontra -1, o PHP passa diretamente para a próxima iteração.

 

10. Filtrar produtos

Vamos utilizar algo mais próximo das futuras páginas dinâmicas.

Queremos apresentar apenas os produtos com stock.

Quando o stock é zero:

faz com que esse produto não seja apresentado.

Conceptualmente:

 

11. Ciclos aninhados

Tal como podemos colocar um if dentro de outro if, também podemos colocar um ciclo dentro de outro ciclo.

Chamamos a isto:

ciclos aninhados.

Exemplo:

Resultado:

Temos:

 

12. Compreender os ciclos aninhados

No exemplo anterior:

O ciclo exterior executa:

Para cada uma dessas vezes, o ciclo interior executa:

Portanto:

A instrução:

é executada 12 vezes.

 

13. Representação dos ciclos aninhados

Podemos imaginar:

O ciclo interior é executado novamente sempre que começa uma nova iteração do ciclo exterior.

Post Anterior