【发布时间】:2016-10-19 00:54:23
【问题描述】:
事情就是这样。最近我一直在做一个类似人工智能的项目。我想要做的是,我将获得一个 0-300 之间的随机数,我必须根据该数字做一个随机的事情。
现在我可以使用了
switch(/*number b/w 0-300*/){
case 0:
case 1:
so on to 300
我已经尝试过 IF-Else 案例,显然它们比 switch 案例效率更低。
但我认为必须有更好的方法来做到这一点,因为制作这么多案例需要很长时间。
编辑:我想提一下,所有这些情况都是无效的,所以我不知道如何用列表来实现它们。而且我在 java 7 无法更改为 java 8,所以界面有点难以管理
【问题讨论】:
-
随机事件有300个吗?还是只有选定数量的随机事件?
-
case中发生的平均情况是什么? -
我不明白。您关心的是程序员时间(编写、测试和维护 300 个案例所花费的精力)还是执行时间(机器执行代码所花费的时间)?在后一种情况下——不用担心。 300箱不算什么。在前一种情况下——我们需要更多信息。困难的部分将是在每个案例中编写代码inside。有什么东西让你觉得你可以自动化吗?
-
是否可以将它所做的所有随机事情都包装在类似的方法中(即相同数量和类型的 args 和返回值)?
-
@thvardhan 在人类看来效率低下的事物通常与对计算机而言效率高的事物没有直接关系。要知道您是否在浪费时间,您需要对解决方案进行基准测试,然后将其与其他解决方案的基准进行比较。由于 Java 已经做了很多运行时优化,因此对 Java 进行基准测试并不容易,但是很少有人能够可靠地查看一段代码并知道它是否比另一个更快或更慢,除非它使用不同的 big-O 模式。我建议编写代码以进行有效维护(易于预期的更改)。切换和 if / else 不是。使用列表
标签: java if-statement random switch-statement