如果条件为真则多个其他

Lia*_*ell 0 perl if-statement

elsif在else if语句中有多个条件.

如果多个条件成立,语句的流程是什么?因此,在下面仅作为演示的简单示例中,是否达到了第二个elsif条件?

my $i = 1;

if ($i == 1){
}
elsif (i == 2){
}
elsif (i == 1){
}
else{
}
Run Code Online (Sandbox Code Playgroud)

zou*_*oul 5

容易尝试:

use feature ":5.10";

my $i = 1;

if ($i == 1) {
    say "A"; # this is the only branch executed
} elsif (i == 2) {
    say "B";
} elsif (i == 1) {
    say "C";
} else {
    say "D";
}
Run Code Online (Sandbox Code Playgroud)

elsif只有先前的条件没有成功,才会考虑每一个.您可以看到甚至没有尝试过比较:

if ($i == 1) {
    say "A";
} elsif (i == 2/0) { # This doesn’t blow up since the comparison is never tried
    say "B";
} else {
    say "C";
}
Run Code Online (Sandbox Code Playgroud)