switch(1){
case 1: print 1; // prints 1 (as expected)
case 2: print 2; // prints 2 (even though match is not equal?)
case 3: print 3; // prints 3 (even though match is not equal?)
}
我知道如果在每個case表達式匹配後不使用break
,大多數編程語言會繼續執行每條語句。但我很困惑,爲什麼大多數語言在第二個和第三個case語句中執行一個case block成功匹配。爲什麼switch語句即使沒有找到匹配時也執行一個case塊?
只是爲了澄清: 我知道switch語句的行爲,但我不明白這樣的邏輯:即使沒有找到匹配,執行case block/statement作爲成功的匹配也是有意義的。
更新:我只是更新了問題,以反映大多數編程語言,而不僅僅是PHP。
請注意,交換機是一種可以以多種方式使用的語句。它不只是替代許多其他的。 – hek2mgl 2013-03-05 02:03:26