9
Laços de repetição while e do while no PHP Introdução Quando for necessário efetuar a repetição de um trecho de um programa um determinado número de vezes o que você faria? Escreveria de novo? Copiaria e colaria? Bem feio né? Afinal estamos utilizando de maquinas que são feitas para trabalhar para nos e não o contrario. Quando encontrarmos um problema como o apresentado anteriormente temos os laços de repetição, também conhecidos como loopings ou laços malhas de repetição que poderão nos ajudar. Vamos a um problema para tentarmos resolver: Problema Bart Simpson ficou novamente na detenção no final da aula. E como punição terá que escrever: “Estou aprendendo loopings no Aprender PHP” 100 vezes no quadro, ou no nosso caso na tela. Com o conhecimento que aprendemos até aqui faríamos algo como: 1 <?php 2 3 $mensagem = "Estou aprendendo loopings no Aprender PHP"; 4 5 echo $mensagem . '<br />' . PHP_EOL ; 6 echo $mensagem . '<br />' . PHP_EOL ; 7 echo $mensagem . '<br />' . PHP_EOL ; 8 9 ?> Até repetirmos 100 vezes. O que não é muito inteligente né? Vamos conhecer agora a nossa primeira estrutura de repetição, o while. O while no PHP

Laços de repetição while e do while no PHP

Embed Size (px)

DESCRIPTION

Laços de repetição while e do while no PHP

Citation preview

Laos de repetio while e do while no PHPIntroduoQuando for necessrio efetuar a repetio de um trecho de um programa um determinado nmero de vezes o que voc faria? Escreveria de novo? Copiaria e colaria? Bem feio n? Afinal estamos utilizando de maquinas que so feitas para trabalhar para nos e no o contrario. Quando encontrarmos um problema como o apresentado anteriormente temos os laos de repetio, tambm conhecidos como loopings ou laos malhas de repetio que podero nos ajudar. Vamos a um problema para tentarmos resolver:ProblemaBart Simpson ficou novamente na deteno no final da aula. E como punio ter que escrever: Estou aprendendo loopings no Aprender PHP 100 vezes no quadro, ou no nosso caso na tela.Com o conhecimento que aprendemos at aqui faramos algo como:1 At repetirmos 100 vezes. O que no muito inteligente n? Vamos conhecer agora a nossa primeira estrutura de repetio, o while.O while no PHPO while executa um teste lgico, que retorne verdadeiro ou falso, no inicio do looping para verificar se permitido ou no executar as instrues. Traduzindo while para portugus obtemos enquanto sendo assim as instrues sero executadas enquanto o teste do looping for considerado verdadeiro.A estrutura while tem seu funcionamento controlado por decises podendo executar um determinado conjunto de instrues enquanto a condio for verdadeira (True) e no momento em que a condio for avaliada como falsa (False) o processamento da rotina desviado para fora do looping. Se desde o inicio a condio for tratada como falsa o looping no ser executado.Diagrama de blocosObserve como seria a representao do problema de Bart Simpson utilizando o while.

No temos nenhum smbolo novo no nosso diagrama. Iniciamos com 2 blocos de processamento de dados, um para o criarmos a mensagem e outro para criar o contador,$i, saber mais sobre o contador abaixo. Em seguida criamos um smbolo de deciso, o losango. Se contador for menor que 100 o bloco dentro do looping ser executado que consiste em imprimir os dados na tela e incrementar em 1 o contador e voltar ao inicio do looping. Quando o contador for maior que 100 encerrasse o looping.No PHPObserve como ficaria a representao em PHP da nossa estrutura while para resolver o problema de Bart Simpson. E como Bart demorou muito ele ainda teve que numerar para termos certeza que ele escreveu s 100 vezes. Observe o cdigo:01 Iniciamos atribuindo um valor a varivel mensagem em seguida criamos uma varivel $i que conhecida como contador ou sentinela. Logo abaixo de nosso contador iniciamos o while que avalia se $i menor que 100, se for verdadeiro ele executa a instruo se no ele sai do looping. A primeira volta de nosso looping a instruo verdadeira ento dentro do looping escrevemos a mensagem e somamos mais 1 a varivel $i com o operador de ps incremento. Aps terminar isto o looping volta e avalia $i aqui com o valor de 2 e se for verdadeira a expresso do while inicia tudo novamente.Voc sabe o porqu do $i no nosso looping? A utilidade dele ali fazer em um momento a expresso se tornar falsa seno teremos um looping infinito. Como o nosso while avalia se$i menor que 100 se sempre ele for menor que 100 o looping nunca parar, por isso que temos que increment-lo para poder uma hora ele chegar ao valor em que a instruo se tornar falsa. Observe o cdigo em que no incrementamos o $i antes de sairmos do looping. Execute e rapidamente pause a execuo do browser, pois como isto nunca ter fim seu browser vai ir ficando bem lento e podendo at travar. Se no quiser testar o resultado ser 1 - Estou aprendendo loopings no Aprender PHP infinitamente um por linha.01 Observe agora o mesmo exemplo de Bart Simpson escrevendo de 1 a 100, no entanto agora ele escrevendo os nmeros em ordem decrescente.01 Veja que alteramos apenas a lgica agora iniciamos o $i com 100 e executamos o looping enquanto $i for maior ou igual a 1 e a cada volta do looping diminumos um para que em um momento termos $i com o valor de 1 e encerrarmos o looping.Em relao estrutura de controle while:A expresso a ser avaliada declarada no inicio do whileExpresses so realizadas por operadores lgicos e operadores de comparaoO looping executado enquanto a condio da expresso for verdadeira (True)Quando a condio da expresso for avaliada como falsa (False) o processamento da rotina desviado para fora do loopingO bloco de cdigo referente ao looping deve ser delimitado por chaves {}Endente o cdigo referente ao bloco em 4 espaos por questes de legibilidade, a como configurar o seu editor de texto para transformar Tabs em espaosUtilizamos um contador para o looping no ficar um looping infinitoDeclara-se o contador fora do loopingNo se esquea de alterar o valor do contador para no cairmos em um looping infinito.O do-while no PHPBastante parecido com o while o do-while caracteriza-se por uma estrutura que executa um teste lgico no fim do looping. Tem seu funcionamento baseado em decises assim como o while, no entanto pelo menos uma vez ser executado o conjunto de instrues, pois a condio da validade, verdadeiro ou falso, avaliado no final.ProblemaContinuaremos o mesmo problema de Bart Simpson, no entanto agora utilizando o do-while.Diagrama de blocos

Veja como seria a representao do mesmo problema de Bart, no entanto agora utilizando o do-while.Basicamente o mesmo diagrama de blocos do feito anteriormente para o while, no entanto observe que a expresso avaliada no final, se for verdadeira a expresso escrevemos a mensagem e incrementamos em 1 o contador se for falsa samos do looping.No PHPObserve como ficaria a representao em PHP da soluo do problema de Bart Simpson agora com o uso do do-while.01 Voc observou que temos todos os elementos que tnhamos no while n? O contador, incrementar o contador, uma expresso. No entanto agora temos o do que quer dizer que pelo menos uma vez ser executado mesmo que a condio na expresso seja avaliada como falsa, lembrando que assim como o while o do-while executado enquanto a expresso for verdadeira, observe abaixo onde Bart muito esperto alterou seu contador para dizer ao diretor que j havia escrito 150 vezes.01Veja que mesmo a expresso sendo falsa, 150 no menor nem igual a 100, o looping foi executado pelo menos uma vez, pois a avaliao da expresso feita no final. Agora veja com o while o que ocorreria.

01

Como no while a expresso avaliada no comeo, o looping no foi executado nenhuma vez. J no do-while como a expresso s avaliada no final pelo menos uma vez o looping ser executado.Em relao estrutura de controle do- while:A expresso a ser avaliada declarada no final do do-while garantido que pelo menos uma vez o looping ser executado devido dica anteriorExpresses so realizadas por operadores lgicos e operadores de comparaoO looping executado enquanto a condio da expresso for verdadeira (True)Quando a condio da expresso for avaliada como falsa (False) o processamento da rotina desviado para fora do loopingO bloco de cdigo referente ao looping deve ser delimitado por chaves {}Endente o cdigo referente ao bloco em 4 espaos por questes de legibilidade, a como configurar o seu editor de texto para transformar Tabs em espaosUtilizamos um contador para o looping no ficar um looping infinitoDeclara-se o contador fora do loopingNo se esquea de alterar o valor do contador para no cairmos em um looping infinito.