要回答您的问题,没有充分的理由要什么都不做。 以这种方式思考,在break之后而不是return后面说“不要忘记”的评论将具有相同的效果-没有。 这样听起来听起来很傻,对吗?
除非您需要设置一个var以便以后使用,否则我建议您使用的方法非常好。 在查看代码后的2秒钟内,我就知道了代码的意图。 拥有break只会造成混乱。
确实没有一种尺码适合所有人。 正确的方法取决于适合方案的情况。 在每个break中设置一个变量,并设置一个return可能是正确的方法,或者只是返回就有意义。
关于答案中其他建议的一些观察:
1)return之后没有break,则意味着如果以后更改代码,可能会出现问题
只要有可能,代码就应该是明确的,可读且清晰的。 我们还可以通过某种方式使将来的更改变得容易。 但是,在像break这样简单的事情中,应该没有问题,也不需要安全网来重构return,以后再添加或删除break或break。
实际上,如果您删除了break并“没有发现没有break”,那么这是一个很糟糕的错误,可能会在编码的任何部分出现。 没有陷阱检查将节省您的时间。 并且应该对未来的潜力进行非常仔细的编码,因为这种潜力可能永远不会发生,或者可能会发生其他事情,而您最终将维护过时的代码多年。
同样,它被认为是将来更改的安全网-如果您删除break并意外将其留在了该安全网return中,该怎么办?
即使这个switch语句是一个生死攸关的场景,真的是很严肃的代码,我还是反对在返回之后添加“无意义的”中断。 只需确保从事代码工作的人都知道他们在做什么,并且代码被足够多的人审查并经过了充分测试。
如果那真的很严重,那么您将比拟议的安全网更好地进行更多检查,以赶上草率的开发者。
辩称退货后休息增加了安全网,这意味着您未正确编码或测试。 如果这是一个有用的安全网,则可能在更严重的地方,代码中存在大量错误。
Wiki文章“防御性编程”已链接到该文章,但在这里不相关:
防御性编程是防御性设计的一种形式,旨在确保 意外情况下软件的持续功能 情况。
保留安全网break既不是不可预见的情况,也不是防御性编程。 这只是糟糕的编码,并且您不能在备份代码中乱扔代码,以防万一您更改某些内容时编码不正确。 这是一种糟糕的编码方法。 “如果有人将退货归还不起作用”的论点,那么您也可能在case var中有错别字,或者忘记写出case,或者...
break返回,并且您不必“防御性地”编码以避免返回失败。 那将意味着PHP已损坏,并且您也不会用安全网填充代码来满足此要求。 这是您在更高层次上拥有的东西。
2)return之后的break使其保持明确
但这显然是错误的。 break返回,因此不会发生中断。 对我来说,这是我从头开始思考的事情,想知道我是否错过了这个意图-不会很久就知道将会发生什么,但是有一段时间我会仔细考虑以确保我没有错过任何事情。
虽然在同一break中同时包含break和return并非无效或错误,但这完全没有意义,因为break什么也不做。 这是没有意义的代码,因为它不合逻辑,因此需要查看,维护和弄清楚。
如果显式的目标是核心目标,而在return之后又有break敦促您,因为它毫无意义,那么我会说最好设置一个变量和break,然后在断开开关后返回该变量。
像@RageZ一样[https://stackoverflow.com/a/1437476/2632129]
3)设置变量并在switch语句完成后返回
这种方法完全没有错,但是如果没有理由将值存储在变量中(以后使用等),那么最好在不需要进行任何其他操作时立即返回。
这表明了明确的意图-大小写匹配后立即返回一个值。