可以说我有
int j = 23;
for (j < 20; j++) {
//do stuff
}
我知道在这种情况下这似乎很愚蠢,但这可能吗?或者你必须做
int j = 23;
for (j; j < 20; j++) {
//do stuff
}
您通常会使用一个空的初始化程序:
for (; j < 20; ++j)
当然,这只是一个例子,但如果j
是 initialized 23
,for
循环将永远不会执行。
你总是有三个组件,但其中任何一个都可能是空白的。所以你的第一个例子可以写成:
int j = 23;
for (; j < 20; j++) {
// do stuff
}
(当然,这根本不做任何事情,因为 的初始值j
大于 23,所以循环立即终止)。
您只能做两件事,但需要两个分号,因为 for 循环由初始化程序、条件和在每个循环上执行的操作组成。您当然可以将其中任何一项留空
for (; j < 20; j++) {
// do stuff
}
例如,您甚至可以有一个仍然递增 j 的无限循环
for (int j = 0; ; j++) {
// do stuff
}
您不能在此处省略分号。它应该是:
int j = 23;
for (; j < 20; j++) {
//do stuff
}