而循环结束条件

时间:2011-04-14 16:53:24

标签: java while-loop

这令我吃惊。以下测试失败;循环结束,我的值为9,而不是8.你能解释一下吗?

import junit.framework.TestCase;

public class TestDoWhile extends TestCase {
    final int LIMIT = 8;

    public void testDoWhile() throws Exception {
        int i = 0;
        do {
        } while (i++ < LIMIT);
        assertEquals(LIMIT, i);
    }
}

4 个答案:

答案 0 :(得分:7)

你需要这样做:

++i < LIMIT

评估条件的方式,然后 i递增。如果您执行上述操作,我将在评估之前递增。

答案 1 :(得分:4)

原因必须是i ++,它在最后一次评估后最后一次递增变量。

答案 2 :(得分:0)

在i为8时,在循环过程中,++将其增加到9,但是作为后增量运算符,它是原始的8与LIMIT相比,后者失败并退出循环。

答案 3 :(得分:0)

i ++表示在使用此表达式后增加i。尝试使用++ i来获得预期的结果。

/维克多