Mas saber que uma condição é verdadeira ou falsa não é suficiente.
Imagine que estamos a desenvolver uma loja online. Se existir stock, queremos apresentar "Produto disponível". Caso contrário, queremos apresentar "Produto esgotado".
Ou imagine um sistema de classificações. Se a média do aluno for igual ou superior a 10 valores, queremos apresentar "Aprovado". Caso contrário, queremos apresentar "Não aprovado".
É aqui que entram as estruturas condicionais.
Nesta aula vamos aprender a utilizar if, else e elseif para fazer com que os nossos programas consigam tomar decisões e executar instruções diferentes dependendo das condições existentes.
1. O que é uma estrutura condicional?
Uma estrutura condicional permite executar determinado código apenas quando uma condição é verdadeira.
Na vida real fazemos isto constantemente:
Se estiver a chover, levo guarda-chuva.
Em programação podemos representar esta decisão da seguinte forma:
O PHP utiliza principalmente a estrutura if para representar este tipo de decisão.
2. A estrutura if
if significa:
se
A estrutura básica é:
if (condicao) {
// Instructions executed when the condition is true
}
Por exemplo:
$idade = 20;
if ($idade >= 18) {
echo "É maior de idade.";
}
O PHP verifica:
$idade >= 18
Como:
20 >= 18 → true
a instrução existente dentro do if é executada.
Resultado:
É maior de idade.
3. Como funciona o if?
Podemos representar o funcionamento assim:
Se a condição for false, o código existente dentro do if não é executado.
Por exemplo:
$idade = 16;
if ($idade >= 18) {
echo "É maior de idade.";
}
A comparação produz:
16 >= 18 → false
Por isso:
echo "É maior de idade.";
não será executado.
Neste exemplo, a página não apresenta qualquer mensagem.
4. As chavetas { }
Observe novamente:
if ($idade >= 18) {
echo "É maior de idade.";
}
As chavetas:
{
}
delimitam o bloco de instruções associado ao if.
Podemos ter várias instruções:
if ($idade >= 18) {
echo "Acesso permitido
";
echo "O utilizador é maior de idade.
";
echo "Pode continuar.
";
}
Se a condição for verdadeira, todas as instruções existentes entre { e } são executadas.
5. A importância da indentação
Compare:
if ($idade >= 18) {
echo "Acesso permitido";
echo "Pode continuar";
}
com:
if ($idade >= 18) {
echo "Acesso permitido";
echo "Pode continuar";
}
Os dois exemplos podem funcionar, mas o segundo é muito mais fácil de compreender.
A indentação permite identificar visualmente quais as instruções que pertencem à condição.
À medida que os programas crescerem, isto tornar-se-á ainda mais importante.
6. if com variáveis booleanas
Nem todas as condições precisam de fazer uma comparação.
Na aula anterior vimos o tipo:
bool
Considere:
$disponivel = true;
Podemos escrever:
if ($disponivel) {
echo "Produto disponível.";
}
Como $disponivel contém true, o código é executado.
Se tivermos:
$disponivel = false;
a mensagem não será apresentada.
7. A estrutura if...else
Muitas vezes queremos executar uma ação quando a condição é verdadeira e outra ação quando é falsa.
Utilizamos:
if (condicao) { // Executed if true} else { // Executed if false}Por exemplo:
$idade = 16;
if ($idade >= 18) {
echo "É maior de idade.";
} else {
echo "É menor de idade.";
}
Neste caso:
16 >= 18 → false
por isso é executado o bloco do else.
Resultado:
É menor de idade.
8. Representação do if...else
Podemos pensar desta forma:
O programa escolhe um dos dois caminhos.
Nunca executa os dois.
9. Exemplo — Stock de um produto
Imagine uma loja online:
$produto = "Teclado Gaming";
$stock = 8;echo "<h1>$produto</h1>";
if ($stock > 0) {
echo "<p>Produto disponível.</p>";
} else {
echo "<p>Produto esgotado.</p>";
}
Como:
8 > 0 → true
será apresentado:
Produto disponível.
Agora alteramos:
$stock = 0;
Temos:
0 > 0 → false
Resultado:
Produto esgotado.
A estrutura da página não mudou.
Mudaram os dados e o programa tomou uma decisão diferente.
10. A estrutura elseif
Nem sempre existem apenas duas possibilidades.
Imagine uma classificação:
18 ou mais → Excelente14 a 17 → Bom10 a 13 → Suficientemenos de 10 → Insuficiente
Aqui precisamos de testar várias condições.
Podemos utilizar:
if (condicao1) { // ...} elseif (condicao2) { // ...} else { // ...}Exemplo:
$nota = 16;
if ($nota >= 18) {
echo "Excelente";
} elseif ($nota >= 14) {
echo "Bom";
} elseif ($nota >= 10) {
echo "Suficiente";
} else {
echo "Insuficiente";
}
Resultado:
Bom
11. Como funciona o elseif?
É importante perceber que as condições são verificadas pela ordem em que aparecem.
Para:
$nota = 16;
o PHP começa por:
$nota >= 18 ?
Resultado:
false
Avança:
$nota >= 14 ?
Resultado:
true
Executa:
echo "Bom";
e termina esta estrutura condicional.
Não precisa de testar:
$nota >= 10