【发布时间】:2018-06-26 06:42:57
【问题描述】:
我试图让我的代码在 for 循环中针对 i 的不同值以不同的方式工作,但我不知道我是否应该让条件进入循环内部,或者只是创建多个 for 循环以提高速度。
我的英语在解释事情上似乎效率很低,所以这里有一个例子:
for (int i = 1; i < 31; i++) {
if (i < 11) {
System.out.println(3*i);
} else if (i<21) {
System.out.println(2*i);
} else System.out.println(i);
}
或
for (int i = 1; i < 11; i++) System.out.println(3*i);
for (int i = 11; i < 21; i++) System.out.println(2*i);
for (int i = 21; i < 31; i++) System.out.println(i);
如果其中一个可能更好或不更好的原因也能得到解释,那将非常有帮助。提前谢谢你:>
【问题讨论】:
-
每个版本运行一百万次,然后计时。
-
真的,不要关心你做的第一件事(或第二、第三等)的性能或“提高速度”。而是专注于编写好的、可读的和可维护的代码,并且它可以工作。然后,如果它不够好(并且足够好通常是足够好)或者您有某些性能要求,那么您可以测量、基准测试和分析代码以找到最严重的瓶颈并修复它们(使用文档, cmets 和单元测试)。
标签: java for-loop conditional