segunda-feira, 14 de março de 2011

PHP - Parte 4 - Estruturas de Controle

Estruturas de controle ajudam na tomada de decisão frente a alguma pergunta que pode ter mais de uma resposta.
Ao invés de ficar escrevendo sobre o que é ou não, vamos trabalhar com exemplos, assim a gente já vai aprendendo a usar e entendendo ao mesmo tempo...

Declaração condicional "IF" ... se isso faça X senão faça Y
Por exemplo: Como escrevo numeros de 1 a 3 por extenso?

Coloque o codigo em vermelho em um arquivo.PHP e faça o teste, os comentários são auto-explicativos.


<html>
<body>
<?php
//Utilizando a cláusula "IF"
//Escrevendo numeros de 1 a 3.. troque o valor da variável e veja o que acontece.
$numero = 2;
if($numero == 1) //Se $numero for igual a 1..
{
echo("Um"); //Imprima palavra "Um"
}
else if ($numero == 2) //Se $numero for igual a 2..
{
echo("Dois"); //Imprima palavra "Dois"
}
else if ($numero == 3) //Se $numero for igual a 3..
{
echo("Três"); //Imprima palavra "Três"
}
else //Senão... 
{
echo("Número não identificado"); //Imprima que não identificou o numero
}
?>
</body>
</html>


Outra estrutura de controle muito utilizada também é o SWITCH que funciona como um "chaveador" dependendo do valor da variável.
Como o SWITCH verifica todas as possibilidades, precisamos dar um BREAK; no final da possibilidade correta para que o programa possa sair fora do SWITCH, senão ele executará todas as possibilidades em série.
Vamos ao exemplo para entender melhor...
Copie e cole o código abaixo, em vermelho; em um arquivo.PHP e rode para ver o resultado...


<html>
<body>
<?php
//Utilizando o SWITCH
//Vamos utilizar o mesmo exemplo de escrever o nome dos numeros utilizado no exemplo de IF
//Troque o valor que inicializa a variável e confira os resultados.. 

$numero = 3; //Variavel de controle inicializada

switch($numero) //Variávelde controle dentro do switch
{
case 1: //Variável contém o valor 1?
echo "Número Um"; //Se sim.. imprime o nome do numero... 
break; // Para de efetuar verificões e sai do laço

case 2: //Variável contém o valor 2?
echo "Número Dois"; //Se sim.. imprime o nome do numero... 
break; // Para de efetuar verificões e sai do laço

case 3: //Variável contém o valor 3?
echo "Número Três"; //Se sim.. imprime o nome do numero... 
break; // Para de efetuar verificões e sai do laço

default: //Se não achar nenhum valor correspondente, entra nesta opção
echo "Número não encontrado!!"; //Imprime que não foi encontrado e sai do laço.
//Note que não precisamos do break; aqui porque já é a ultima opção e não verificará mais nada a partir daqui... então break; não é necessário.
}
?>
</body>
</html>


Estrutura de controle FOR...
Basicamente, o que acontece é.. para um determinado valor Y, execute a operação tantas vezes até que este valor atinja um limite X.
Vamos ao exemplo para entenderem melhor..
Copiar e colar o código abaixo em vermelho em um arquivo.PHP e testar...


<html>
<body>
<?php
//Utilizando o FOR
$x = 20; //Inicializando a variável com o valor que se deseja contar.. 

for($i=1 ; $i <= $x ; $i++) //Enquanto $i for menor ou igual a $x, execute o comando abaixo e ao término some 1 ao valor de $i
{
echo "$i <br>"; //Imprima o valor de $i e pule uma linha.. 
}
?>
</body>
</html>



Podemos misturar as estruturas de controle como no exemplo abaixo:


<html>
<body>
<?php
//Utilizando o FOR
$x = 5; //Inicializando a variável com o valor que se deseja contar.. 

for($i=1 ; $i <= $x ; $i++) //Enquanto $i for menor ou igual a $x, execute o comando abaixo e ao término some 1 ao valor de $i
{
switch($i) //Variávelde controle dentro do switch
{
case 1: //Variável contém o valor 1?
echo "Número Um"; //Se sim.. imprime o nome do numero... 
echo "<br>"; //Pulando linha
break; // Para de efetuar verificões e sai do laço

case 2: //Variável contém o valor 2?
echo "Número Dois"; //Se sim.. imprime o nome do numero... 
echo "<br>"; //Pulando linha
break; // Para de efetuar verificões e sai do laço

case 3: //Variável contém o valor 3?
echo "Número Três"; //Se sim.. imprime o nome do numero... 
echo "<br>"; //Pulando linha
break; // Para de efetuar verificões e sai do laço

default: //Se não achar nenhum valor correspondente, entra nesta opção
echo "Número $i não encontrado!!"; //Imprime que não foi encontrado e sai do laço.
//Note que não precisamos do break; aqui porque já é a ultima opção e não verificará mais nada a partir daqui... então break; não é necessário.
echo "<br>"; //Pulando linha
}
}
?>
</body>
</html>


Agora vamos aprender a estrutura WHILE.. ou enquanto uma situação for verdadeira, execute...
Vamos ao exemplo:


<html>
<body>
<?php
//Utilizando o WHILE
//Altere o valor que estão sendo inicializadas as variáveis e veja o que acontece...
$valor = 2; //Inicializando o $valor com  2
$resultado = 0; //Inicializando o $resultado com 0 (zero)
$limite = 500; //Inicializando o $limite com 500

while($valor < $limite) //Enquanto o $valor for menor que o $limite... execute....
{
$resultado = $valor * $valor; //$valor multiplicado por ele mesmo é armazenado no resultado.. 
echo "$valor multiplicado por $valor é igual a $resultado <br>"; //imprime o novo resultado e pula linha
$valor = $resultado; //$valor é reiniciado com o conteúdo de $resultado
}
echo "$resultado é maior que $limite e por isso paramos de multiplicar!!"; //Imprime quando ultrapassar o limite..
?>
</body>
</html>

E ficamos por aqui com as estruturas de controle.. façam mudanças no código, usem a imaginação..

Abraço e até a próxima..

Nenhum comentário:

Postar um comentário