Ciclo de Decisão If..else
E aqui vem o 3º artigo relativo aos artigos de perl. Neste artigo vou-vos ensinar a utilizar um dos ciclos de controlo mais utilizados em programação que é o ciclo if..else
e sua forma complexa if..elsif
. Este ciclo serve para controlar o fluxo de dados de um programa, no sentido de que se uma condição for verdadeira vai realizar uma acção, e se for falsa vai realizar outra.
if..else
O ciclo if..else
divide-se em duas partes:
if (condição) {
#bloco de código1
}else{
#bloco de código2
}
Como podem ver tem uma estrutura muito simples. Mas para facilitar a vossa compreensão de como isto funciona vou explicar passo a passo o que está neste exemplo.
if (condição) {
#na primeira linha inicio o ciclo if dizendo que tem que verificar a condição que está entre "()"<strong>, </strong>caso esta condição seja verdadeira , irá ser #executado o bloco de código1
}else { #caso seja falso irá executar o bloco de código2
bloco de código2
}#não esquecer dos {}
A primeira vez pode ser um pouco complicado. Mas agora vou dar um exemplo prático. Imaginem que queremos fazer um script que analise um valor introduzido e diga se é negativo ou positivo. Para tal fazemos o seguinte:
#!/usr/bin/perl -w
use strict;
print "Introduza um número\n";
chomp(my $val = <STDIN>);
if($val > 0){
print "número é positivo\n";
}else{
print "número é negativo\n";
}
if..elsif
Nesta situação utilizamos o if
para verificar se o número é positivo ou negativo. E agora vocês perguntam-se então e se tivermos mais do que 2 condições para analisar ou então neste programa de ver se é positivo ou negativo como fazemos se o número for 0. Bem para lidar com essas situações temos uma derivação do ciclo if
que é o if .. elsif
.
A sua estrutura de trabalho é bastante parecida ao ciclo if simples, só que neste caso temos 2 ou mais condições para verificar. De seguida fica a estrutura de um ciclo if..elsif
.
if (condição) {
#na primeira linha inicio o ciclo if dizendo que tem que verificar a condição que está entre <strong>"()", </strong>caso esta condição seja verdadeira , irá ser #executado o bloco de código1
#bloco de código1
}elsif(condição){ #caso a primeira condição não seja verdade o ciclo irá verificar a segunda condição.
#bloco de código2
}else{#por fim caso nenhuma destas condições sejam verdadeiras então irá executar o bloco de código 3
#bloco de código3
}
Como podem ver este tipo de estrutura oferece um controlo de dados um pouco mais complexa. Como não poderia de deixar de fazer vou deixar um exemplo prático deste ciclo. E como tal vou pegar no programa anterior e irei usar este ciclo para verificar se o valor introduzido é 0.
#!/usr/bin/perl -w
use strict;
print "Introduza um número\n";
chomp(my $val = <STDIN>);
if($val > 0){
print "número é positivo\n";
}elsif($val < 0){
print "número é negativo\n";
}else{
print "o valor é nulo";
}