Estruturas de Controle no PHP

Vamos agora falar sobre as estruturas de controle, que são responsáveis pelo fluxo de seus scripts. O PHP possui uma série dessas estruturas, o que possibilita utilizar cada uma da forma que achar mais adequada para o que se quer fazer. É importante que você esteja familiarizado com todos os eles, já que são os responsáveis por fazer todo o controle de funcionamento de seus scripts.

Abaixo iremos estudar as seguintes:



Estruturas Condicionais (IF, IF…ELSE, ELSEIF, SWITCH)

IF / IF…ELSE / ELSEIF

Começaremos pela forma mais básica de controle que é o IF. Ele simplesmente testa uma condição e executa um comando se o resultado for verdadeiro (TRUE ou diferente de zero).

Vejamos a sintaxe:

// FORMA 1
if(expressão){
  comando;
}

// FORMA 2
if(expressão)
  comando;

Para completar o IF, temos o ELSE que executa um outro comando caso a expressão condicional seja falsa (FALSE ou 0 “zero”). Veja a sintaxe abaixo:

// FORMA 1
if(expressão){
  comando;
}else{
  outro_comando;
}

Exemplo de uso do IF e ELSE

<?php
$a = 3;
$b = 5;

if($a > $b){
  echo "Valor de A é maior que B!";
}else{
  echo "Valor de B é maior que A!";
}
?>

Existe ainda a possibilidade de fazer um encadeamento nesse tipo de estrutura de controle, onde iremos executar mais de um teste condicional, podendo ser executado vários comandos diferentes, dependendo do resultado. Uma das formas é utilizando o ELSEIF e a outra forma é colocando um IF dentro do outro.

Exemplo de uso do ELSEIF

<?php
$a = 3;
$b = 5;

// Exemplo 1 - ELSEIF
if($a > $b){
 echo "Valor de A é maior que B!";
}elseif($a > $b){
 echo "Valor de B é maior que A!";
}else{
  echo "Valor de A e B são iguais!";
}
?>

Exemplo de uso do IF dentro de IF

<?php
$a = 3;
$b = 5;

// Exemplo 2 - IF dentro de IF
if($a > $b){
  echo "Valor de A é maior que B!";
}else{
  if($b > $a){
    echo "Valor de B é maior que A!";
  }else{
    echo "Valores de A e B são iguais!";
  }
}
?>

SWITCH

O comando switch funciona de uma forma muito parecida de uma cadeia de IF e ELSE. Basicamente ele serve para comparar um valor com vários outros, e dependendo do resultado ele executar um comando ou bloco de comandos e caso não se compare com algum dos valores, ela retorna o comando default (padrão). Esta estrutura de controle trabalha com o auxílio do break e do default.

Veja a sintaxe do SWITCH:

switch(expressão){
  case "valor1":
    comando;
    break;
  case "valor2";
    comando;
    break;
  case "valorN";
    comando;
    break;
  default:
    comando;
}

Comparando encadeamento de IF e o uso do SWITCH:

<?php
$i = 2;

// Encadeamento de IF
if ($i == 0){
  echo "i é igual a zero";
}elseif ($i == 1){
 echo "i é igual a um";
}elseif ($i == 2){
  echo "i é igual a dois";
}

// Uso do SWITCH
switch($i){
  case 0:
    echo "i é igual a zero";
    break;
  case 1:
    echo "i é igual a um";
    break;
  case 2:
    echo "i é igual a dois";
    break;
  default:
    echo "O valor de i é diferente de 0, 1 e 2";
}
?>


Estruturas de Repetição (FOR, WHILE, DO…WHILE)

FOR

O for é uma das estruturas de repetições mais complexas dentre todas do PHP, mas com prática fica fácil utilizá-la. Vejamos a sintaxe básica:

for (expressão1; expressão2; expressão3;){
  comandos;
}

Agora vamos a explicação de cada parte do for.

  • expressão1 – Esta parte é executada, independente da condição da expressão2 deste loop. Expressão de Inicialização;
  • expressão2 – No começo de cada loop, é verificada. Caso seja TRUE (verdadeiro), o loop continua e executa o bloco de comandos. Caso seja FALSE (falso), o loop finaliza e já sai da estrutura de controle for. Expressão de Condição;
  • expressão3 – No final de cada iteração, esta expressão é executada. Expressão de Incremento;

Exemplos de uso do FOR

<?php
// Exemplo 1 - Conta de 1 até 10
// Perceba que o valor inicial de $i é definido como 1. Na segunda expressão, faz a verificação enquanto ele for menor e igual a 10. Na terceira expressão ele dá o incremento no valor de $i
echo "Contar de 1 até 10: <br />";
for($i=1; $i<=10; $i++){
 echo $i."<br />";
}

// Exemplo 2 - Exibe os números pares de 0 até 20
echo "Números pares de 0 até 20: <br />";
for($i=0; $i<=20; $i++){
 if(($i%2)==0){
 echo $i."<br />";
 }
}
?>

WHILE

Esta estrutura de controle é a mais simples de todas. Ela simplesmente verifica a condição da expressão e executa o bloco de comandos caso seja verdadeiro. Você perceberá que a definição do valor de $i deverá ser feita antes de iniciar o WHILE e o incremento ou decremento deve ser feito dentro, geralmente logo antes do final do WHILE. Veja a sintaxe:

while(expressão){
  comandos;
}

Exemplos de uso do WHILE

<?php
// Exemplo 1 - Conta de 1 até 10
echo "Contar de 1 até 10: <br />";
$i=1;
while($i<=10){
 echo $i."<br />";
 $i++;
}

// Exemplo 2 - Exibe os números pares de 0 até 20
echo "Números pares de 0 até 20: <br />";
$i=0;
while($i<=20){
 if(($i%2)==0){
 echo $i."<br />";
 }
 $i++;
}
?>

DO…WHILE

Basicamente funcionam da mesma forma que o simples WHILE. Mas neste caso, o bloco de comando estará dentro das chaves do comando DO e a verificação será feita pelo WHILE logo após a execução. Veja a sintaxe abaixo:

do{
  comandos;
}while(expressão);

Exemplo de uso do DO…WHILE

<?php
// Exemplo 1 - Conta de 1 até 10
echo "Contar de 1 até 10: <br />";
$i=1;
do{
 echo $i."<br />";
 $i++;
}while($i<=10);

// Exemplo 2 - Exibe os números pares de 0 até 20
echo "Números pares de 0 até 20: <br />";
$i=0;
do{
 if(($i%2)==0){
 echo $i."<br />";
 }
 $i++;
}while($i<=20);
?>

Exercícios das Estruturas de Repetição

Utilizando um intervalo de 0 até 100, com incremento de 1 no valor de $i:

  1. Exibir todos os números ímpares;
  2. Exibir números que são primos;
  3. Exibir números múltiplos de 4;
  4. Saber a soma de todos os números pares;
  5. Desenhar uma tabela HTML com 5 colunas e quantas linhas forem necessárias, exibindo o valor de $i dentro de cada célula.

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

2 Responses to “Estruturas de Controle no PHP”

  1. Pedro disse:

    Achei muito bom, só gostaria de ver se tu tens o gabarito dos exercicios.
    Continue postando e ajudando a comunidade.
    “Conhecimento somente será conhecimento se for compartilhado.”

    • Diego Macêdo disse:

      A idéia aqui é tentar fazer os exercícios com o que foi aprendido durante a postagem. Tenta acertar, e se não conseguir procura o erro. Se não conseguir de forma alguma, posta aqui a sua dúvida que irei te ajudar no que der. Afinal, pode existir mais de uma resposta em algoritmos de programação, umas mais simples e outras mais confusas, mas que no final tudo funciona.

Deixe um comentário para Diego Macêdo Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *