Ir para o conteúdo

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";
}