当for循环在Java中没有增量表达式时会发生什么?

时间:2016-11-23 01:12:42

标签: java for-loop decrement

我发现我的循环中有一个return语句。感谢大家的帮助。

我在Java中遇到了一个没有递增/递减表达式的for循环。事实上,我的IDE告诉我表达式是死代码。

没有递增/递减表达式的循环:

for(int i = 5; i!=0;)
  //Do something...

然后,每当我尝试添加i--时,就像这样:

for(int i = 5; i!=0; i--)

我的IDE告诉我i--是死代码,这使我感到困惑,因为我看不出我将如何改变。所以我的问题是,这个循环如何在Java中工作?这是一个无限循环吗? JVM是否会减少i自己的权限?等...

最小例子:

for(int i=10; i!=0;i--)
  //Do something...

达成:

public void methodName(int number){
  for(int i = number; i!=0; i--)
    //Do something...

2 个答案:

答案 0 :(得分:3)

答案简短:

package.json

永远输出整数5。

它相当于:

for (int i = 5; i != 0;) {
    System.out.println(i);
} // ,

它永远输出5,因为int i = 5; while (i != 0) { System.out.println(i); } 总是 5而i 总是不同于0.为了逃避循环,你必须显式更新i的值,直到它保持值为0。

答案 1 :(得分:1)

它应该适用于所有小于5的i。

因此您需要将for循环写为:

for(int i = 5; i>=0; i--)

这将是一个无限循环:

for(int i = 5; i!=0;){
    System.out.println(i);
}

因为它将继续适用于所有不等于0的i。