以下for循环与原始循环有何不同?
为什么初始化后会检查条件?
为什么for
循环会出现这种行为以及其他棘手的行为呢?
class FooBar
{
static public void main(String... args)
{
for (int x = 1; ++x < 10;)
{
System.out.println(x); // it starts printing from 2
}
}
}
输出:
2
3
4
5
6
7
8
9
最佳答案
x
的增量与条件结合在一起。通常,增量在for
循环的第三部分中执行,该循环是在迭代结束时执行的语句。
但是,条件是在循环开始时检查的。它是一个表达式,而不是语句,但是如您所见,这不会阻止某人插入副作用-x
的预增量。
由于x
以1
开头,因此条件在第一次迭代之前将其递增为2
。