Posts tagged Laços

Estruturas de Laço em PHP

0

As estruturas que veremos a seguir são comuns para as linguagens de programação imperativas, bastando, portanto, descrever a sintaxe de cada uma delas, resumindo o funcionamento.

WHILE

É um comando de repetição, ele repete o comando até que a condição testada seja falsa. Ex:

< ?php
$num = 1;

while ($num <=10) {
$num++;
echo $num;
}
? >

DO… WHILE

É semelhante ao while com a única diferença que a expressão é testada ao final do bloco de comandos. Ex:

< ?php
$num = 0;
do {
$num++;
echo $num;
} while ($num < 10);
? >

FOR

Um comando for é um laço com início, fim e incremento pré-estabelecido e deve ser escrito da seguinte maneira:

< ?php
for ($num = 0; $num <= 10; $num++) {
echo $num;
}
? >

Neste caso:
A cada execução a variável $num será incrementada em 1. O valor inicial será 0 e o final será 10.

Executando este script em uma página no apache, o resultado final será:

012345678910

Interrupção do laço

Break
Interrompe a execução do laço e vai para a próxima linha após o final do mesmo.

Continue
Interrompe a execução do bloco de código dentro do laço e vai para a primeira linha iniciando a próxima iteração.

Ex:

< ?php

for ($num = 0; $num < 100; $num++) {
if ($num % 2) continue;
echo “ $num “;
}

? >

O exemplo acima imprime os números pares entre 0 e 99. O que o laço faz é testar se o resto da divisão entre o número 2 é 0. Se for diferente de zero (valor lógico true) o interpretador encontrará um continue, que faz com que os comandos seguintes do interior do laço sejam ignorados, seguindo para a próxima iteração.

Do While em PHP

0

Ao longo da programação de uma aplicação web, temos de repetir as mesmas funções diversas vezes. Por exemplo, quando dei o exemplo da lista de compras do Ze e da Maria, essa lista tinha 4 produtos. Esses 4 produtos fora escritos utilizando 4 linhas com o comando “echo”. Agora imaginamos uma lista de compras com 100 produtos, e temos uma dor de cabeça! Nestes casos, não se pensa duas vezes, e pegamos num dos ciclos que podemos implementar: o While ou o FOR.

Estes dois ciclos são muito idênticos, visto que se pode sempre converter um ciclo WHILE, num ciclo FOR, e vice versa. A decisão de utilizar um ou outro, é apenas tomada pela pessoa que os implementa, e tem a ver com a simplicidade com que depois consegue interpretar um ou outro. Existem situações onde um WHILE aplica-se com mais facilidade, outras em que um FOR arrasa com tudo. =) Ambos serão explicados separadamente.

While!
Quer dizer “Enquanto”. A sua sintaxe é a seguinte:

while(condição)
{
//bloco de código
}

Ou seja, enquanto a condição se verificar, executa determinado código.
Exemplo de um ciclo WHILE:

<?

$numero=1;

while ($numero<=10)
{
echo “Número: $numero <br>”;
$numero++;
}

?>

Este código inicia a variável $numero com o valor 1. Seguidamente entra dentro de um ciclo WHILE, que executa um bloco de código, enquanto a variável $numero for inferior ou igual a 10. No bloco, temos um output que nos vai indicar qual o valor da variável, e logo a seguir, temos o incremento de uma unidade da variável $numero. O resultado da execução do script é a seguinte:

Número: 1
Número: 2
Número: 3
Número: 4
Número: 5
Número: 6
Número: 7
Número: 8
Número: 9
Número: 10

Enquanto a condição tiver o valor VERDADEIRO, o bloco de código do While é executado.

FOR
O ciclo for, tem uma particularidade em relação ao WHILE. Enquanto um While a variável de contagem, e a instrução de incremento, quando existem, são declaradas em pontos diferentes do código, o ciclo FOR junta essas declarações no mesmo local onde define a condição. Sintaxe de um FOR:

for (declaração de variáveis; condição de execução; incrementos de variáveis)
{
//bloco de código a executar
}

Na primeira zona declaramos as variáveis (normalmente os contadores ou índices); na segunda zona indicamos as condições de execução do ciclo for: enquanto essas condições tiverem o valor VERDADEIRO, o ciclo é realizado; na 3 zona, é onde vamos indicar os incrementos das variáveis/contadores.

Utilizando o exemplo do WHILE, vamos construir um FOR:

<?

for ($numero=1; $numero<=10; $numero++)
{
echo “Número: $numero <br>”;
}

?>

O resultado deste ciclo é exactamente igual ao do WHILE. Neste tipo de ciclo, onde iniciamos uma variável, e incrementamos essa mesma variável para control do ciclo, o FOR tem vantagem na sua implementação.

Exercício
Cria um array $meses (usando a função”array()”) com os nomes dos meses do ano.
Utiliza ambos os ciclos While e FOR (separadamente) para escrever os 12 meses.

Exercício
Com base no Exercício 3 (p4.txt) usa um ciclo While para escrever os produtos do Ze, e um FOR para escrever os produtos da Maria. Nota: Deves respeitar o código de cores dos produtos de ambos os estafetas.

Nota: Este exercício é de alguma dificuldade. É possível que requeira de algum tempo e prática, para conseguires implementa-lo correctamente. Se conseguires completar o exercício sem qualquer ajuda.. é porque estas a dominar bem isto!

Resumo:
Utilizamos ciclos sempre que temos linhas de código repetidas. Usar um ciclo WHILE ou FOR depende da situação de implementação, e da forma como achamos ser mais simples a sua compreensão.

Go to Top