Sentències condicionals
Les sentències condicionals us permeten canviar el flux del codi.
Les sentències condicionals operen amb els valors booleans que heu après al capítol anterior i inclouen if/else/elsif
i unless
.
Quan el resultat d'una expressió entre parèntesis és cert, el bloc de codi envoltat de claus s'avalua:
if (1 == 1) { say 'cert'; } if (1 == 0) { say 'fals'; }
Si voleu fer quelcom quan l'expressió sigui falsa podeu utilitzar else
:
if (0) { say 'cert'; } else { say 'fals'; }
Si voleu avaluar de nou l'expressió, podeu utilitzar elsif
:
my $x = 1; if ($x == 0) { say 'x és zero'; } elsif ($x < 0) { say 'x és menys que zero'; } else { say 'x és més que zero'; }
També hi ha una forma breu per la sentència if
:
my $x = 5; say 'cert' if $x > 0;
unless
és el contrari d'if
, on és el valor fals el que determina si el bloc s'executa, i no el cert.
my $x = 5; say 'cert' unless $x == 0;
Això és el mateix que:
my $x = 5; say 'cert' if !($x == 0);
Com ja sabeu, a Perl els valors certs són tot allò que no és zero, així que la comparació amb 0 normalment no és necessària:
my $x = 5; say 'cert' unless $x;
Exercici
Corregiu aquest codi per tal que imprimeixi 'Hola'
en comptes d''Adéu'
utilitzant operadors lògics i sense canviar el valor d'$x
.
my $x = 0; if ($x) { say 'Hola'; } else { say 'Adéu'; }