【发布时间】:2013-10-05 10:30:16
【问题描述】:
我有一个简单的 for 循环,它让循环计数器 i 增加到 5。
int i;
double n = 1 / 2;
for (i = 2; i <= 5; i++) {
n = n + 1.0 / i;
}
System.out.print(i);
所以我希望循环结束后计数器的值为 5。但是值是 6,nit 5。这是为什么呢?
谢谢
【问题讨论】:
-
因为末尾有一个
i++?阅读this。 -
另外,
double n = 1 / 2;变为 0 而不是 0.5,因为您正在进行整数除法。要使其成为 0.5,您必须写1.0 / 2.0(至少一个数字必须是双倍)。 -
i增加,直到 for 循环中的条件不再为真。5 <= 5是真的,但6 <= 5是假的。因此,它停止了。 -
因为这就是循环的设计方式。也许阅读精美的手册?
-
在提问之前请尝试遵循此指南:meta.stackexchange.com/questions/156810/…