Curso de PHP: #8 - Estruturas condicionais: If, Else e Else if

Curso de PHP: #8 - Estruturas condicionais: If, Else e Else if

E ai pequeno escoteiro, belezinha? Esse post é muito especial porque é nele que vamos falar sobre um dos recursos mais importantes da programação, as estruturas condicionais. Você verá que esse assunto apesar de muito poderoso é absurdamente simples de entender e utilizar e verá também que ele está intimamente ligado ao dois últimos assuntos que vimos: Operadores de Comparação e Operadores Lógicos. E ai, vamos nessa?

Até agora todos os códigos que criamos sempre seguem um fluxo linear, ou seja, o interpretador PHP faz a leitura linha a linha sem nenhum tipo de desvio, mas na vida real isso quase nunca representa a realidade, porque a depender do que você queira fazer podem haver condições para que seja possível ou não realizar a ação.

Vamos a um pequeno exemplo:

  • Quero ir a praia: Eu tenho dinheiro suficiente? Se sim eu vou a praia, senão eu fico em casa
  • Quero tirar CNH (Carteira nacional e Habilitação): Eu tenho mais de 18 anos? Além disso eu tenho dinheiro suficiente para isso? Se sim eu vou tirar o laudo junto ao DETRAN, senão, eu aguardo.

Os exemplos acima mostram que a depender de determinas condições podemos executar uma ação ou outra e se você prestar bem atenção verá que essas condições se resumem a valores Booleanos.

Vamos a um exemplo visual por meio de um fluxograma:

image.png

Agora vamos transformar esse fluxograma em um código PHP:

<?php

$idade = 18;

if ($idade > 17) {
    echo "Seja muito bem-vindo";
} else {
    echo "Você não pode entrar";
}

O comando IF analisa uma condição booleana e desvia o fluxo do programa para um determinado bloco SE essa condição for verdadeira (true), senão ele desvia o fluxo do programa para dentro do bloco else.

Perceba que a anatomia do bloco IF é bem simples:

  • Primeiro temos a palavra reservada if
  • Depois temos abertura e fechamento de parênteses, onde devemos informar nossa condição Booleana.
  • Depois temos abertura e fechamento de chaves, que delimita o bloco para o qual o código terá seu fluxo desviado caso a condição seja verdadeira.

O bloco ELSE é opcional, pois nem sempre precisamos dele.

Exemplo sem else:

<?php

$nomeAnimal = "Cobra";
$perigoso = true;

echo "Animal: ";
echo $nomeAnimal;

if ($perigoso == true) {
    echo "\n";
    echo "Tenha cuidado!!!";
}

Perceba que independentemente de a variável $perigoso ter um valor Booleano true ou false, o bloco principal que imprime a palavra "Animal: " e o valor da variável $nomeAnimal será executado, porque não existe nenhuma condição para que isso aconteça.

Já o bloco de baixo, que está dentro do IF, só será executado se e o somente se a variável $periogoso tiver o valor true.

Tem duas coisinhas aqui que precisamos falar agora:

  1. Você deve ter reparado aquele echo "\n", o \n significa new line, ou seja, quando você imprime o \n na realidade você está informando ao PHP que você quer "Quebrar a linha", ou simplesmente saltar para a linha de baixo no console.

  2. Quando estamos aprendendo a programar, não acho importante nos preocuparmos com qualidade do código, o importante nesse primeiro momento é entender como as coisas funcionam. Com o passar do tempo nós vamos adquirir maturidade e vamos aos poucos aprendendo a melhorar nosso código. Mas, vamos analisar aquela linha if ($perigoso == true) { .... Como a gente aprendeu, dentro dos parênteses do if a gente sempre coloca uma condição Booleana, certo? Mas a variável $perigoso já não tem um valor Booleano? Nesse caso eu não preciso comparar ele com true, porque ele já é true.

Versão simplificada do código sem else

<?php

$nomeAnimal = "Cobra";
$perigoso = true;

echo "Animal: ";
echo $nomeAnimal;

if ($perigoso) {
    echo "\n";
    echo "Tenha cuidado!!!";
}

Blz, mas... E se eu precisar testar mais de uma condição ao mesmo tempo?

Não tem problema, lembra que estudamos sobre Operadores Lógicos? Você pode usá-los aqui 🥰.

Exemplo com operadores lógicos

<?php

$diaQuente = true;
$tenhoDinheiro = false;

if ($diaQuente && $tenhoDinheiro) {
    echo "Vamos a lá playa!!!";
} else {
    echo "Não posso sair, meu cachorro tá doente!";
}

ELSE IF

A depender do que o nosso programa faça, podemos precisar testar várias condições em sequência, pensando nisso o PHP nos fornece o ELSE IF que é um novo bloco que pode ser anexado ao nosso IF e que será analisado logo após a analise do IF principal.

Vamos a mais um exemplo:

<?php

$idade = 0;

if ($idade < 2) {
    echo "Essa pessoa é um bebê!";
} else if ($idade >= 2 && $idade < 13) {
    echo "Essa pessoa é uma criança!";
} else if ($idade >= 13 && $idade < 18) {
    echo "Essa pessoa é um adolescente!";
} else {
    echo "Essa pessoa está na fase adulta!";
}

Existem algumas outros tipos de estruturas condicionais, mas como eu disse, vamos manter as coisas simples por enquanto 🙂.

Desafio

Viu como as coisas estão começando a ficar legais? Então para você praticar mais um pouco eu proponho o seguinte desafio:

<?php

$bolsaEstagiario = 1200;
$salarioProgramadorJunior = 3500;
$salarioProgramadorPleno = 7000;
$salarioProgramadorSenior = 10000;

$tipoContrato = "pleno";

Crie um programa usando o código acima e imprima na tela cada um desses valores a depender do valor atribuído à variável $tipoContrato .

Valeu escoteiro. Até a próxima!!!