哪个是更好的循环条件?我<= array.length-1或我<array.length

时间:2018-10-21 01:31:51

标签: arrays loops object conditional-statements

哪种条件最适合Java循环?我觉得他们会做同样的事情,但是我不确定是否看不到任何东西。

For(int i = 0; i

For(int i = 0; i <= array.length-1; i ++){}

1 个答案:

答案 0 :(得分:1)

您经常看到两种形式的事实很可能是由于以下因素的结合:

  • 样式首选项中的差异。第一种形式更简洁,因此某些人会喜欢它。

  • 程序员思考问题的方式有所不同。

  • 程序员认为读者会思考问题的方式有所不同。 (就像“我知道数组索引转到array.length - 1,我希望读者看到我已将其考虑在内。”

  • 一种(可能是错误的)信念,即一个版本比另一个版本更有效。


我之所以说“可能是错误的”,是因为人们的共识是,现代Java JIT编译器可能会将这两种形式优化为性能相同的本机代码。我说这是没有提供证据 1 ,因为我不知道有任何反证据 2

1-可以通过适当的基准测试或通过仔细分析JIT编译器发出的本机代码来获得证据。检查字节码不会证明任何事情。

2-如果有相反的证据……这有所作为……我声称这将是常识!