gpt4 book ai didi

java - while 循环 Java 的意外输出

转载 作者:行者123 更新时间:2023-11-29 09:39:20 25 4
gpt4 key购买 nike

这是我无法理解其行为的类。

class loop1 {
public static void main(String args[]) {
int i = 10;

do
while(i++ < 15) {
System.out.println(i);
i = i + 20;
System.out.println(i);
}
while(i<2);

System.out.println(i);
}

}

我希望它能打印出来

11
31
31

但是它打印

11
31
32

我不明白为什么这个“32”会出现在输出中。

这是我对流程的理解

  • 我=10
  • 在 while 循环中,由于一元增量,它变成了 11,所以这解释了第一个输出
  • 11 增加到 31 (+20)
  • 然后 31 < 15 应该会失败(在下一次迭代期间),因此它应该继续执行最后一个打印语句并打印 31,但它打印的是 32。

谁能告诉我我错过了什么?

最佳答案

在第一个 while 循环的最终评估期间,i++ 仍然递增 i,即使循环因为条件失败而没有执行。

class loop1 {
public static void main(String args[]) {
//1. i = 10
int i = 10;

do
// 2. while loop condition = (10 < 15), i = 11
// 6. while loop condition = (31 < 15), i = 32
while(i++ < 15) {
System.out.println(i); //3. prints 11
i = i + 20; //4. i = 31
System.out.println(i); //5. prints 31
}

while(i<2); //this really has no effect on the codes execution, given i values

System.out.println(i); //7. Prints 32
}

}

关于java - while 循环 Java 的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18312785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com