Quantcast

PHP é a quinta-feira – Ciclos While e for

18 Comentários

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í!

php

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.

Partilhar:
Tags:

Comentários

18
  1. JO
    JonhyH

    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

  2. MR

    Muito bom para começar. Espera que continuem, com mais periodicidade, a lançar estes mini tutoriais 🙂

    Cumprimentos!

  3. AS
    asa

    Juntem os artigos antigos neste post (em baixo) assim seria de mais fácil leitura.

    Bom ano pplware!

  4. MA
    Marinho

    php é a quinta feira?? mas hoje (dia 01-01-2010) é sexta!!!
    lol
    parece que o PHP veio de ferias..:)
    continuem com o bom trabalho….

  5. JS
    Jose Simoes

    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.

  6. ZÉ
    zéé

    Bom Tutorial! Claro e objectivo. Os ciclos while e for são praticamente iguais em C e PHP, algo que desconhecia 🙂
    Bom Ano Pplware!

    1. MA
      Marinho

      e muita coisa igual.. for’es, while’s, if’s…

  7. SO
    softclean

    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.

  8. TI

    Óptima rubrica que foi relançada =D

    Bom trabalho Luis e pplware 😉

    Abraço…e bom 2010 para todos!

  9. MP
    Marisa Pinto

    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/

  10. TT
    Trak Trak Trugui

    Boa…
    eu tô querendo me adentrar mais nesse mundo do PHP.

    Abraços.

  11. MS
    Márcio Santos

    Luís, espero que continues a saga do php. Da próxima podias falar de arrays associativos. 😀

    Bom artigo

  12. BÓ

    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.

    1. BÓ

      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.

    2. LL

      Em 2 anos que me ensinaram php, sempre me ensinaram assim a programar.

      Obrigado pelos comentários e opiniões.

      Cumprimentos,
      Luis Leite

      1. BÓ

        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.

    3. IC
      Ice

      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

      1. IC
        Ice

        Ficou incompleto em cima….

        for($numero = 1; $numero <= 10; ++$numero) {

        echo "Número:" . $numero . "\n";

        }

Deixe um comentário