public class YourClassNameHere {
public static void main(String[] args) {
int i = 1;
do
while(i++ <= 2);
while(i++ <= 4);
System.out.println(i);
}
}
循环和后增量如何在此程序中起作用。
答案 0 :(得分:4)
看看它在循环时嵌套工作。
int i = 1;
do {
System.out.println("start"+i);
while(i++ <= 2)System.out.println("inner while loop "+i);
}
while(i++ <= 4)System.out.println("outer while loop"+i);
System.out.println("final ans"+i);
答案 1 :(得分:2)
正如halim所说你有嵌套循环。在代码中添加一些System.out.println并查看结果。
示例:
int i = 1;
do
{
System.out.println("i = " + i + " on position: outer loop start");
while (i++ <= 2)
{
System.out.println("i = " + i + " on position: inner while loop");
}
System.out.println("i = " + i + " on position: outer while loop");
} while (i++ <= 4);
System.out.println("i = " + i + " on position: final result");
在看到结果后,您将看到“i”变量如何从1增加到7以及它发生的位置。你需要知道,在条件i ++&lt; = 2,如果输入“i”为2,则第一个将是2&lt; = 2(真),之后“i”将得到它的增量值3.在下一个传递中你将检查3&lt; = 4(假)但是因为你有i ++它仍然会得到他的增量值4。 运行上面的代码,看看增量实际发生的位置。
答案 2 :(得分:1)
简单地说,你没有使用足够的括号。我建议在所有''','if'等中使用括号,否则你可能会得到意想不到的结果(比如在这里?)。你想看到任何特定的输出,或者为什么在这种情况下你会得到7?
无论答案如何,halim的解决方案就是我所说的:
do {
while (i++ <= 2);
}
// remaining code in here