我在else if语句中有多个elsif
条件。
如果多个条件成立,语句的流程是什么?因此,在下面仅作为演示的简单示例中,是否达到了第二个elsif条件?
my $i = 1;
if ($i == 1){
}
elsif (i == 2){
}
elsif (i == 1){
}
else{
}
答案 0 :(得分: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";
}
仅在先前条件未成功的情况下才考虑每个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";
}
答案 1 :(得分:2)
系统从if语句开始并检查条件。如果为true,则执行语句的主体,然后跳过其余的else和else语句。如果为false,则向下移动到列出的第一个if语句。发生相同的过程:检查条件,如果为true执行正文并跳过剩余的其他if和else语句; if false跳到下一个if语句。
简而言之:从上到下按顺序选择else if语句。因此,如果你有两个if语句都是真的,那么只会执行前一个语句。
答案 2 :(得分:1)
第一场比赛将赢得其他esle / elsif区块被跳过。
不,不会到达第二个elsif
块。