public class YourClassNameHere {
public static void main(String[] args) {
int i = 1;
do
while(i++ <= 2);
while(i++ <= 4);
System.out.println(i);
}
}
循环和后增量如何在此程序中工作。这段代码如何将输出作为7输出?
public class YourClassNameHere {
public static void main(String[] args) {
int i = 1;
do
while(i++ <= 2);
while(i++ <= 4);
System.out.println(i);
}
}
循环和后增量如何在此程序中工作。这段代码如何将输出作为7输出?
看看它工作嵌套while循环。
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);
当我得到增加到4然后两个while循环条件得到错误,所以它应该打印i = 5,但not.How我得到增加到6和7. –
当我变量值= 4,因为<= 4然后做while循环条件变为真后n增量调用(i ++)mins i = 5然后while(i ++ <= 2)条件变为false并且增量i ++调用mins i = 6然后while循环条件变为false并且增量后调用mins i = 7 。这就是为什么它放弃了7。 – halim
正如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");
后,你看到的结果,你会看到“我”变量是如何增量从1到7和whitch位置它正在发生。你需要知道,在条件i ++ < = 2,如果输入“我”是2,第一件事将是2 < = 2(真),然后“我”会得到它的递增值3.在下一回合,你会检查3 < = 4(false)但是因为你有i ++,它仍然会得到他的增量值4. 运行上面的代码,看看增量的真实发生位置。
简而言之,你没有使用足够的括号。我建议在所有'do','if'等中使用括号,否则你可能会得到意想不到的结果(如在这里?)。是否有任何特定的输出,你想看到或只是为什么在这种情况下,你得到7?
无论答案如何,哈利姆的解决办法是什么我谈论:
do {
while (i++ <= 2);
}
// remaining code in here
拿支铅笔和纸,用手工作,通过。 –
使用一个调试器,你会看到 – Jens
第一个提示:展开每个循环,使其具有花括号的身体,然后你可以在体内添加日志记录... –