这令我吃惊。以下测试失败;循环结束,我的值为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);
}
}
答案 0 :(得分:7)
你需要这样做:
++i < LIMIT
评估条件的方式,然后 i递增。如果您执行上述操作,我将在评估之前递增。
答案 1 :(得分:4)
原因必须是i ++,它在最后一次评估后最后一次递增变量。
答案 2 :(得分:0)
在i为8时,在循环过程中,++将其增加到9,但是作为后增量运算符,它是原始的8与LIMIT相比,后者失败并退出循环。
答案 3 :(得分:0)
i ++表示在使用此表达式后增加i。尝试使用++ i来获得预期的结果。
/维克多