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:
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:
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.
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!!!