我elsif在else if语句中有多个条件.
如果多个条件成立,语句的流程是什么?因此,在下面仅作为演示的简单示例中,是否达到了第二个elsif条件?
my $i = 1;
if ($i == 1){
}
elsif (i == 2){
}
elsif (i == 1){
}
else{
}
Run Code Online (Sandbox Code Playgroud)
容易尝试:
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)