For, do-while ,while ou foreach?
São muito os laços de repetição, porém cada um com suas características e particularidades.
Abaixo mostro um pouco destas diferenças e quando implementá-los.
Os laços mais comuns, pelo menos para mim, são o for e o foreach. Porém em alguns casos sou obrigado a usar o do-while.
Vamos então ver as diferenças entre for, do-while ,while e foreach:
Repetição com For
Muito utilizado.
Normalmente utilizamos quando temos uma quantidade de repetição pré-definida, ou seja, antes mesmo de iniciar o loop, já sabemos quantas vezes ele terá que repetir.
<?php
$tecnologias = array('PHP','HTML','CSS','JQUERY');
for($i = 0; $i < 4; $i++) {
echo $tecnologias[$i];
}
?>
No código acima pré-definimos que nosso laço for
irá se repetir quatro vezes, imprimindo os valores do array $tecnologias
na tela.
A variável $i serve para identificar o índice do array.
Poderíamos pré-definir contando quantos índices há no array.
<?php
$tecnologias = array('PHP','HTML','CSS','JQUERY');
for($i = 0; $i < count($tecnologias); $i++) {
echo $tecnologias[$i];
}
?>
Repetição com Do-while
Pouco utilizado.
No laço do-while temos uma condição que enquanto for verdadeira, o loop continuará.
Atentem para um detalhe, a condição é testada no final do laço, que quer dizer que o laço irá executar pelo menos uma vez.
<?php
$tecnologias = array('PHP','HTML','CSS','JQUERY');
$i = 0;
do {
echo $tecnologias[$i];
$i++;
} while(!empty($tecnologias[$i]));
?>
O laço do-while é executado e no final verifica se a condição é verdadeira, ou seja, se ainda existem valores dentro do array $tecnologias. Se sim, o laço será executado novamente até que a condição seja falsa (quando array $tecnologias estiver vazio).
Notem que não precisou pré-definir a quantidade de vezes que o array irá executar. Porém ainda utilizamos um contador para referenciar os índices.
Repetição com While
While funciona da mesma forma que do-while, porém a condição é testada no início do laço. Que significa que se a condição for falsa o laço não será executado.
<?php
$tecnologias = array('PHP','HTML','CSS','JQUERY');
$i = 0;
while(!empty($tecnologias[$i])) {
echo $tecnologias[$i];
$i++;
}
?>
Repetição com Foreach
Esse é o que mais utilizo em meus códigos, e provavelmente o mais utilizado pelos programadores.
É um laço muito parecido com while, mas tem uma grande vantagem sobre o while.
<?php
$tecnologias = array('PHP','HTML','CSS','JQUERY');
foreach($tecnologias as $tecnologia) {
echo $tecnologia;
}
?>
O laço foreach dispensa o uso de contadores e imprime na tela exatamente na ordem em que se encontram os elementos do array. Mas a vantagem não para por aí...
Podemos utilizar índice(chaves) e valores sem muita dificuldade, apenas alterando um pouco sua estrutura.
<?php
$tecnologias = array('PHP','HTML','CSS','JQUERY');
foreach($tecnologias as $chaves=>$valores) {
echo 'Chaves: '.$chaves;
echo 'Valores: '.$valores;
echo '<br />';
}
?>
Na própria estrutura do laço, foi dividido o array em chaves e valores.
Esse artigo apenas abordou a utilização básica de cada um dos laços, porém os laços podem ter uma abordagem mais ampla dentro de um código.
Por exemplo, condições mais complexas dentro do laço while, e por aí vai...
Comentários
Olá Marcos, talvez a função do php "explode" possa te ajudar nessa etapa. Ela vai transformar os valores da variável em array. Abraços!
Comentar