2016-10-08 80 views
-2

为什么这会给我10而不是8作为答案?Java do while循环帮助我理解

int count = 0; 
do{ 
    System.out.println("welcome to java"); 

}while (count++ < 9); 
System.out.println(count); 
+1

它会在它添加一个之前检查'count <9'。所以它看到它的8,增加一个,看到它的9,增加了一个,并打破了循环。因此制作10 –

+0

查看'++'运算符以获取更多细节。 –

+0

可怕的标题。堆栈溢出不是公告板。请编辑您的标题以有先见之明地总结您的问题。 –

回答

3

首先,当条件不再满足循环结束。

其次count++表示获得值count并将其用于评估中,并且仅在该增量值count之后1

换句话说,对于7,7 < 9被满足并且count被增加到8。 对于88 < 9得到满足并且count递增到9。 对于99 < 9不满足并且循环退出,但在此之前count仍然递增到10

因此在退出循环count之后是10

0

如上一条评论所述,您有一个循环,要求它在第一个循环之后进行一些增量操作。关键要记住的是,它会在增量之前做,并检查是否满足条件。这可以通过从9至8,以便调节代码被改变:

int count = 0; 
    do{ 
     System.out.println("welcome to java"); 
    }while (count++ < 8); 
    System.out.println(count); 
  1. 这将第一println()一样,然后看计数看它是否小于 8,其为0,增量并继续。
  2. 这将println(),然后看看count是否小于8,它是1,递增并继续。
  3. 这将println(),然后看看count是否小于8,它是2,递增并继续。
  4. 这将println(),然后看看count是否小于8,它是3,递增并继续。
  5. 这将println(),然后看看计数看它是否小于8,这是在4,增量和继续。
  6. 这将println(),然后看看计数看它是否小于8,这是在5,增量和继续。
  7. 这将println(),然后看看计数看它是否小于8,这是在6,增量和继续。
  8. 这将println(),然后看看计数看它是否小于8,这是在7,增量和继续。
  9. 最后,它将println()看看count是否小于8,即8,并结束。
1

确保你了解这里的这2个基本概念: -

1)在做循环中的代码中最先被执行前的公式求值

2)后缀增量(计数 ++)和前缀增量(++ 计数)可以更改表达式的结果。后缀增量(计数 ++)将计数值的值增加了一个,但仅在的计数值用于表达式中。

所以,如果你不是在你的代码中使用前缀递增(++ 计数)的值将马上当它在表达式中使用加一。

只需将您的表达式从count++ < 9更改为++count < 8然后您将得到8次执行循环。

干杯。