PHP é a quinta-feira – Ciclos While e for
Por Luis Leite para o Pplware
Este é o meu primeiro post de muitos, espero eu, aqui no pplware. O Pedro Pinto lançou este desafio no IRC de alguém tentar pegar na rubrica do PHP e eu vou tentar realizá-lo.
Como reparei que ainda não se tinha falado em Ciclos While e For, decidi começar por aí!
Ciclo While e Ciclo for
Os Ciclos são transversais a todas as linguagens de programação.
Ambos os ciclos (while e for) são idênticos, tanto que podemos trocar um While por um for e vice-versa. A utilização de qualquer um deles é tomada pelo programador. Claro que há situações onde um While se aplica com mais facilidade e outras em que um FOR é o mais indicado.
While
Quer dizer "Enquanto" e 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\n";
$numero++;
}
?>
Aproveitando o serviço ideone apresentado aqui no pplware, podem verificar e correr o código anterior aqui
Este código inicia a variável $numero com o valor 1. Depois, entrando dentro do ciclo WHILE, que executa um bloco de código, enquanto a variável $numero for inferior ou igual a 10. No bloco, temos um echo 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.
Ciclo 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\n";
}
?>
Podem ver aqui e testar no ideone o código anterior
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.
Assim sendo:
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 pensamos ser mais simples a sua compreensão.
Desde já o meu agradecimento ao meu tio, pela ideia da escrita.
Este artigo tem mais de um ano
No link do ideone tira o plain, senao faz download em vez de apresentar na pagina.
http://www.ideone.com/plain/4ZSdb2GG
http://www.ideone.com/4ZSdb2GG
Muito bom para começar. Espera que continuem, com mais periodicidade, a lançar estes mini tutoriais 🙂
Cumprimentos!
Juntem os artigos antigos neste post (em baixo) assim seria de mais fácil leitura.
Bom ano pplware!
php é a quinta feira?? mas hoje (dia 01-01-2010) é sexta!!!
lol
parece que o PHP veio de ferias..:)
continuem com o bom trabalho….
A minha longa experiência em múltiplas linguagens sugere que é sempre didáctico explicitar, para cada tipo de ciclo.
(a) se a condição é testada no início ou no fim do bloco (ou noutro local qualquer…nunca é, mas isso não se adivinha)
(b) se é possível uma condição em que o bloco é executado zero vezes.
Sem explicitar isso teremos programadores a fazer erros vezes sem conta. E teremos programadores com dificuldade em se adaptar a uma nova linguagem.
Na explicação anterior a frase “enquanto a condição se verificar, executa determinado código” é dúbia, para não dizer errado, pois dá a impressão que se a condição se tornar verdadeira durante a execução do código o código deixará de ser executado, o que não é verdade.
Também a frase “declaração de variáveis” é dúbia. Mais que declaradas, as variáveis podem ser INICIALIZADAS ou ser-lhe atribuido um valor.
José Simões
PS – não explico mais porque não programa em php à uns 6 ou 7 anos e já não estou certo de como são os ciclos em php.
Bom Tutorial! Claro e objectivo. Os ciclos while e for são praticamente iguais em C e PHP, algo que desconhecia 🙂
Bom Ano Pplware!
e muita coisa igual.. for’es, while’s, if’s…
Penso que para o tutorial ficar completo, faltou o ciclo do..while, que executa o ciclo, pelo menos uma vez, independentemente da condição.
Cumps.
Óptima rubrica que foi relançada =D
Bom trabalho Luis e pplware 😉
Abraço…e bom 2010 para todos!
Bom artigo Luís.
[Ainda] Não percebo nada do que aí está, a nível de conteúdo, mas está bem fundamentado, e estruturado. Penso que para primeiro post está muito bom 🙂
Quinta-Feira [nos outros dias também] cá estarem à espera de mais um PHP, eheh
o/
Boa…
eu tô querendo me adentrar mais nesse mundo do PHP.
Abraços.
Luís, espero que continues a saga do php. Da próxima podias falar de arrays associativos. 😀
Bom artigo
No ciclo for, deve-se declarar antes a variável, como foi feito no while, e não dentro do ciclo como é dito no artigo.
Se não a declararmos antes, funciona na mesma, mas não é a forma correcta de programar.
Já agora, mostro aqui uma linha de código, que quando presente no início do nosso ficheiro PHP, mostra-nos qualquer erro que exista:
ini_set(‘error_reporting’, E_ALL);
Nota: Este comando deve ser usado só em fases de testes e nunca no servidor final.
Em 2 anos que me ensinaram php, sempre me ensinaram assim a programar.
Obrigado pelos comentários e opiniões.
Cumprimentos,
Luis Leite
Tens razão. No ciclo for não é preciso declarar a variável antes. Peço desculpa pelo lapso.
Estava a confundir com uma situação idêntica em que se incrementa uma variável (como contador) dentro de um while. Variável essa diferente da que pertence ao próprio while.
Por exemplo: $i+=1;
Funciona dentro de um while sem a ter declarado antes, mas é apresentado um erro no debug do PHP.
Bónus, estás enganado.
declarar a variável $numero dentro do for() é a forma correcta.
De nada vale declara-la fora do for(), pelo contrário só vai atrasar (ainda que de forma insignificante) o código.
O que não deve ser colocado dentro do for() são outras funções, visto que se o fizermos, essa função é executada em todos os ciclos. É comum o pessoal usar count() dentro do for() o que é um erro tremendo.
De qualquer maneira eu alteraria algumas coisas no código, também de forma a acelerar a execução do mesmo.
Faria então da seguinte forma:
<?php
for($numero = 1; $numero
Ficou incompleto em cima….
for($numero = 1; $numero <= 10; ++$numero) {
echo "Número:" . $numero . "\n";
}