Bora ajudar o programador a transformar café em código?

Mostrando postagens com marcador Laço FOR. Mostrar todas as postagens
Mostrando postagens com marcador Laço FOR. Mostrar todas as postagens

Tabuada com laços WHILE, DO WHILE e o FOR

Neste tutorial de PHP, vamos aprender como exibir qualquer tabuada que o usuário desejar, usando laços WHILE, DO WHILE ou o FOR.

Apostila Completa em PDF para download

Quando usar WHILE, DO WHILE ou FOR

Aprendemos três laços, em PHP
Laço WHILE
Laço DO WHILE
Laço FOR

E vimos como usar cada um deles, com exemplos de código.
Mas a maior dificuldade é em saber quando usar cada um: não existe melhor ou pior, use o que achar mais confortável.

O WHILE é, de longe, o mais simples. Executa um código sempre que uma condição for verdadeira.
Muito usado para loopings infinitos ocorrem indefinidamente. Se usa muito WHILE quando você NÃO sabe quando o laço vai terminar.

Se você não sabe se seu teste condicional vai ser validade ou não e quiser sempre que ao menos uma iteração ocorra, use o laço DO WHILE. Ele executa primeiro o código, uma vez pelo menos, e só depois faz o teste condicional.

O laço que mais iremos usar é, sem dúvidas, o FOR, pois é mais completo e poderoso.
Nele, de cara, já inicializamos nossas variáveis, criamos a expressão condicional e a de mudança.
Usamos ele quando sabemos quando começa e exatamente onde termina.

Mas, essencialmente, são todos a mesma coisa.

Tabuada com Laço WHILE

O script abaixo pede um número ao usuário, e exibe a tabuada de tal número usando o laço WHILE:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  Tabuada do:  <input type="text" name="tab" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $tabuada = $_GET['tab'];
  $count=1;
  
  while($count<=10){
   echo $tabuada." x ".$count." = ".($tabuada*$count)."<br />";
   $count++;
  }
 ?>
 </body>
</html>

Tabuada com Laço DO WHILE

O script abaixo pede um número ao usuário, e exibe a tabuada de tal número usando o laço DO WHILE:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  Tabuada do:  <input type="text" name="tab" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $tabuada = $_GET['tab'];
  $count=1;
  
  do{
   echo $tabuada." x ".$count." = ".($tabuada*$count)."<br />";
   $count++;
  }while($count<=10);
 ?>
 </body>
</html>

Tabuada com Laço FOR

O script abaixo pede um número ao usuário, e exibe a tabuada de tal número usando o laço FOR:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  Tabuada do:  <input type="text" name="tab" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $tabuada = $_GET['tab'];  
  for($count=1; $count<=10; $count++)
   echo $tabuada." x ".$count." = ".($tabuada*$count)."<br />";
 ?>
 </body>
</html>

Laço FOR em PHP: O looping controlado

Neste tutorial de nossa apostila de PHP, vamos aprender a usar o laço mais famoso, o looping FOR, que é mais 'controlável', como veremos adiante.

Fazer download da Apostila de PHP Completa

Laço FOR: O que é e Como Usar

Nos tutoriais sobre os laços WHILE e DO WHILE, fizemos duas coisas em comum:
Inicializamos alguma variável
Modificamos essa variável dentro do escopo do laço

Essa variável é chamada de controle, e geralmente usamos a $count e é ela que vai no teste condicional. Isso é necessário para uma hora o looping terminar, algo tem que ser feito nessa variável, para ela ter um fim e chegar até onde desejamos.

Ou seja, temos uma pré condição (inicilizar), um teste condicional e uma pós condição (geralmente incrementar, decrementar ou fazer alguma mudança do tipo na variável de controle).

Pois bem, o laço FOR faz tudo isso de uma vez só, na declaração de uso do looping, facilitando e deixando nosso código muito mais simples e organizado.

Veja como usar o laço FOR em PHP
<?php 
 for( inicializa ; teste_condicional ; modifica){
  codigo;
  codigo;
 }
?>
O laço for é o mais poderoso, mas também o mais complexo de usar, pois ele tem três expressões:

  • Primeira: expressão de inicialização, ocorre antes ao inicializar o FOR, só uma vez
  • Segunda: expressão condicional, teste para saber se o looping deve continuar a ocorrer ou não
  • Terceira: expressão de modificação, após cada iteração do laço, essa expressão é executada

Separamos essas três expressões por ponto e vírgula ;
Vamos ver alguns exemplos para aprendermos na prática como usar o laço FOR.

Exemplo de uso de Laço FOR

No script abaixo, vamos contar de 1 até 10 e exibir essa contagem em uma página HTML
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <?php 
  for($count=1 ; $count<=10 ; $count++)
   echo "$count <br />";
 ?>
 </body>
</html>
Note como ficou mais conciso. Tudo dentro de uma declaração do laço.

Exemplo de uso de Laço FOR

Agora vamos fazer o contrário, contar de 10 até 1:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <?php 
  for($count=10 ; $count>=1 ; $count--)
   echo "$count <br />";
 ?>
 </body>
</html>
A única diferença é que inicializamos do 10 e decrementamos a variável de controle, para que possa se atingir o teste para este se tornar falso e encerrar o FOR. Bem mais simples, não?

Exemplo de uso de Laço FOR

O script abaixo vai usar duas variáveis, $i e $j, inicialmente 1 e incrementadas ao final de cada iteração.
Vamos exibir o resultado da soma enquanto ele for menor que 10:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <?php 
  for($i=1, $j=1 ; $i+$j<=10 ; $i++,$j++)
   echo "$i + $j = ".($i+$j)."<br />";
 ?>
 </body>
</html>
Veja que é possível inicializar e modificar várias variáveis ao mesmo tempo, basta separar por vírgulas.

Exemplo de uso de Laço FOR

Faça um script PHP que imprima a seguinte tabela, usando laço FOR:
1     10
2     9
3     8
4     7
5     6
6     5
7     4
8     3
9     2
10    1

É bem simples resolver usando duas variáveis, uma inicializada em 1 e outra em 10.
A cada iteração, a primeira é incrementada em 1 e a segunda decrementada em 2, veja:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <?php 
  for($i=1, $j=10; $i<=10 ; $i++,$j--)
   echo $i.' '.$j.'<br />';
 ?>
 </body>
</html>
O teste que usamos foi a primeira ser menor ou igual a 10.
Reescreva esse script, mas com o teste envolvendo a segunda variável apenas.

Veja também

O melhor PC para programar

O melhor celular para programar