带有 For 循环 PHP 的直通开关案例


Fall-through Switch Case with For Loop PHP

请帮忙。

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 是带有 echo 语句的代码?我很困惑,有人可以向我解释一下。提前谢谢。

这就是

switch应该如何运作。为了停止陷入下一种情况,您必须使用 break 关键字。在我所知道的每种语言中都是一样的,包括JavaScript,PHP和Python。

有关参考,请查看 PHP 手册。

想象一下你的开关是这样的

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>");

它将继续沿着链条前进,直到调用中断。