为什么不使用switch case语句?

时间:2014-10-09 20:12:31

标签: java interface polymorphism switch-statement

我想在明天的办公时间去问老师之前得到一些信息。

我们有项目要做类似iclicker问题回答收集器的事情。他告诉我们要避免使用switch case语句。我只是想知道为什么以及为什么这个领域的人不喜欢使用它们,还有什么办法可以做?我怀疑他是否希望我们使用if语句。

我认为我们必须使用多态/接口,但我只是不敢说清楚,切换案例似乎很直接。

谢谢。

2 个答案:

答案 0 :(得分:9)

通常当教师询问“不使用X特征”时,这是因为他们希望您学习如何在不使用可能是快捷方式的功能的情况下做某事。在您的情况下,听起来您的教练想要您可以围绕多态性。如果你不这样做,你将不会学到这一点,并且在课堂后期会遇到更多麻烦。

答案 1 :(得分:0)

这取决于项目。例如,在使用RESTful APi时,您确实有switch语句,因为存在限制,已知集。但是,使用您的程序可能会有很多不同的选项,并且该选项可以更改,增加(或减少),因此当您开始使用三个案例时,则需要其他内容,即四个,然后是五个,依此类推。你最终得到了50个案例,这可能不好或不易维护。

通过你的OOP课程,教师可能会告诉你。回来展示整个问题和最终结果,也许其他人可以解决问题。

我在旧的Java书中看到了一个例子,并进行了搜索并发现它仍然不错。考虑员工和工资。您有三种类型的员工,那么您有50种类型。

在小范围内,似乎没有太大区别。它需要扩大问题并考虑后果。

Ways to eliminate switch in code

这是一个很好的例子。当然,在这个例子中只有两个案例。但是,再说一次,如果它是50?维持这个有多容易?编程中的很多东西都是为了节省时间并使事情符合逻辑从长远来看,因为你回到你的代码或其他人那里,你必须保持并支持它。