Chegamos finalmente ao uso de condicionais em Perl (os famosos if e else).
Condição if
A estrutura básica de um if é essa:
if (condicao) {
say "A condição é verdadeira";
}
Esse código significa que, caso a expressão em condicao seja verdadeira, a mensagem "A condição é verdadeira" vai ser impressa na tela. Caso seja falsa, esse bloco de código inteiro será ignorado. Um exemplo que pode ser avaliado é o seguinte:
$idade = 25;
if ($idade >= 18) {
print "Autorizado\n";
}
Onde, caso a variável $idade seja maior ou igual a 18, a mensagem “autorizado” será escrita na tela.
Vamos criar então um programa para um supermercado que diga se uma pessoa já pode ou não pode comprar álcool e cigarros. A pessoa dirá sua idade, e o sistema dirá "compra autorizada" caso ele tenha no mínimo 18 anos, e, caso não tenha, o sistema dirá "compra não autorizada". A primeira parte de nosso sistema já está em nosso exemplo, hora de ver como capturar a idade do usuário.
Capturando entrada de usuário
Para continuarmos com mais tranquilidade, vamos capturar entradas do usuário. Essa entrada é capturada pelo comando <STDIN>. Observe o exemplo:
print "Qual é seu nome?\n";
$nome = <STDIN>;
print "Seu nome é " . $nome . "\n";
E é assim que se captura uma entrada de usuário. Porém, se você testou esse código, você deve ter notado uma coisa: ocorrem duas quebras de linha ao invés de uma. Isso pode não ser um problema para quem só quer imprimir uma palavra no final de uma linha, mas para qualquer outro fim a variável é meio inútil. Podemos resolver com a função chomp:
print "Qual é seu nome?\n";
chomp($nome = <STDIN>);
print "seu nome é " . $nome . "\n";
Isso remove a linha nova inserida ao apertar enter quando se insere o valor. Baseado nisso, e no fato que em Perl os números e strings são lidos da mesma forma, podemos alterar nosso código para utilizar idades de forma dinâmica, o que, além de permitir que testemos com múltiplos valores o nosso código sem realizar alterações nele, também faz parte das funcionalidades que são necessárias para que nosso programa esteja completo.
Se você fez tudo certo até aqui, seu código deve se parecer com isso:
print "Digite sua idade:\n";
chomp($idade = <STDIN>);
if ($idade >= 18) {
print "Compra autorizada\n";
}
Else
Mas e se a compra não for autorizada? Nesse caso, teremos o uso de outra condicional: else. A sintaxe da estrutura é a seguinte:
if (condicao) {
say "condição verdadeira";
} else {
say "condição falsa";
}
Nosso código pode ser implementado nesse caso da seguinte forma:
print "Digite sua idade:\n";
chomp($idade = <STDIN>);
if ($idade >= 18) {
print "Compra autorizada\n";
} else {
print "Compra não autorizada\n";
}
E é basicamente isso. E aí, o que achou? Deixe sua resposta nos comentários 😆🥰
Exercícios de fixação
Separei aqui alguns exercícios para você fixar seus conhecimentos:
- Faça um programa que receba dois valores e imprima o maior
- Faça um programa que receba um valor e diga se é positivo ou negativo
- Faça um programa que receba as três notas de um aluno. Se a média entre elas for maior ou igual a 7, diga que ele está aprovado, senão diga que ele está reprovado