Comandos de repetição: for

Uma das principais características do ´for´ é ter meio que um contador embutido, vamos analisar o último exemplo:

for ($i = 0; $i < 10; $i++) {
    echo $i . ' ';
}

// No final será exibido:
// 0 1 2 3 4 5 6 7 8 9

No exemplo acima o comando for possui três partes, separadas por ponto e vírgula dentro do parênteses, acontece o seguinte:

  • Na primeira parte iniciamos uma variável chamada $i cujo valor inicial é 0.
  • Na segunda colocamos uma condicional, no caso queremos que o código dentro do for se repita enquanto o valor de $i seja menor que 10.
  • Na terceira parte dizemos o que irá acontecer quando o que estiver dentro do ´for´ for executado, no caso acrescentaremos 1 ao valor de $i a cada execução.

Desta maneira, a próxima vez que o bloco for for executado, o valor de $i será 1, depois 2, e assim por diante até $i ser igual a 10, o que fará o código parar de repetir pois 10 não é menor que 10, e sim igual, então o código após o for será executado normalmente.

Ele é muito útil caso você precise de um contador pois ele meio que te obriga a declarar um, podemos aproveitar o contador para fazer condicionais por exemplo:

for ($i = 1; $i <= 5; $i++) {
    if ($i == 3) {
        echo 'Mensagem exibida se $i for igual a 3';
    }

    if ($i == 5) {
        echo 'Mensagem exibida se $i for igual a 5';
    }
}

Você também pode usá-lo para percorrer arrays usando a função global count():

$nomes = ['Alefe', 'Ada', 'Charles', 'Rasmus', 'Brendan'];

for ($i = 0; $i < count($nomes); $i++) {
    echo $nomes[$i] . ', ';
}

// No final será exibido:
// Alefe, Ada, Charles, Rasmus, Brendan,

Nesse caso o valor de count($nomes) será 6, e então na primeira execução do for o valor de $i será 0, assim exibindo o valor de $nomes[0], depois $nomes[1], e assim por diante até $nomes[5].

Lembre-se que os arrays começam a partir do 0, e o valor de $i só vai até 5 (o índice máximo desse array) pois na segunda parte colocamos que será repetido enquanto $i for menor que count($nomes).

results matching ""

    No results matching ""