for($i=0; $i<12; $i++){
switch($i) {
case 0:
case 1:
case 2:
case 3:
case 4:
echo ("i is less than 5 <br>");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
echo ("i is less than 10 <br>");
break;
default:
echo ("i is 10 or more <br>");
}
}
这是我在我的Java书中得到的示例代码,我将上面的代码翻译成了PHP。
下面的代码的输出:
i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is 10 or more
i is 10 or more
我的问题是,这种情况下,0怎么来的情况下3个输出“i小于5”,即使它不具有任何下面的代码和案例4是有回声的人吗?我很困惑,有人可以向我解释这一点。提前致谢。
这就是“fall through”指的是 - 如果你在case语句后没有'break',它会进入下一个。 – iainn
你的头衔似乎表明你已经知道答案。此外,[手册](http://php.net/manual/en/control-structures.switch.php)中已经详细介绍了这一点,本应该是您首先研究此问题的地方。 –
但是,如果case 0到case 3输出i小于5,即使它没有echo语句。我已经对此进行了研究,如果一个案件没有任何违规声明,它将继续贯穿下一个案例,直到它遇到一个突破声明。我认为它应该只输出它,当遇到情况4时,我小于5次 –