当 for 循环在 Java 中没有递增表达式时会发生什么?
What happens when a for loop has no increment expression in Java?
我发现我的循环中有一个 return 语句。无论如何感谢大家的帮助。
我在 Java 中遇到了一个没有 increment/decrement 表达式的 for 循环。事实上,我的 IDE 告诉我表达式是死代码。
没有 increment/decrement 表达式的循环:
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...
它应该适用于所有小于 5 的 i。
因此您需要将 for 循环编写为:
for(int i = 5; i>=0; i--)
这将是一个无限循环:
for(int i = 5; i!=0;){
System.out.println(i);
}
因为它将继续为所有不等于 0 的 i 工作。
简短回答:
for (int i = 5; i != 0;) {
System.out.println(i);
} // ,
将永远输出整数5。
相当于:
int i = 5;
while (i != 0) {
System.out.println(i);
}
它永远输出 5,因为 i
总是 5 而 i
总是 总是 不同于 0。为了跳出循环,您必须显式更新 i
的值,直到它的值为 0.
我发现我的循环中有一个 return 语句。无论如何感谢大家的帮助。
我在 Java 中遇到了一个没有 increment/decrement 表达式的 for 循环。事实上,我的 IDE 告诉我表达式是死代码。
没有 increment/decrement 表达式的循环:
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...
它应该适用于所有小于 5 的 i。
因此您需要将 for 循环编写为:
for(int i = 5; i>=0; i--)
这将是一个无限循环:
for(int i = 5; i!=0;){
System.out.println(i);
}
因为它将继续为所有不等于 0 的 i 工作。
简短回答:
for (int i = 5; i != 0;) {
System.out.println(i);
} // ,
将永远输出整数5。
相当于:
int i = 5;
while (i != 0) {
System.out.println(i);
}
它永远输出 5,因为 i
总是 5 而 i
总是 总是 不同于 0。为了跳出循环,您必须显式更新 i
的值,直到它的值为 0.