从开关盒中掉下来?

mow*_*ker 5 javascript php

当我在 PHP 网站上读到时,我正在编写一个 switch case:

Thus, it is important not to forget break statements (even though you may want to avoid supplying them on purpose under certain circumstances).

没有break语句的switch case非常适合我想做的事情。我希望执行匹配的案例下面的所有案例。为什么这是错误的?以不同的方式做到这一点的最佳方法是什么?

它对所有语言都有害吗,还是只对 PHP 有害?为什么?

编辑:无论是不是问题,有没有办法在没有开关盒的情况下做同样的事情?

Dom*_*c K 4

正如它所指出的 - 即使您可能希望在某些情况下避免故意提供​​它们。只要你知道自己在做什么,那么破案就不是问题。就我个人而言,我认为这是使用 case 语句如此有用的一个重要原因(而不是 &&,但这只是我的观点)。

所以答案是,这对于任何特定的语言来说都不错,因为你不是在与该语言作斗争。

  • 在我看来,C# 语言最令人讨厌的特性是有代码时不允许失败。失败是由我来决定的,如果我做错了,我会承担责任,而不是由语言设计者完全禁止。(我对此很恼火,因为直到今天早上我才_想要_这样做,并且在上下文中,它会使代码比我被迫执行的一系列 if 语句_更加逻辑且易于阅读。) (2认同)