2

可以说我有

int j = 23;
for (j < 20; j++) {
    //do stuff
}

我知道在这种情况下这似乎很愚蠢,但这可能吗?或者你必须做

int j = 23;
for (j; j < 20; j++) {
    //do stuff
}
4

4 回答 4

8

您通常会使用一个空的初始化程序:

for (; j < 20; ++j)

当然,这只是一个例子,但如果j是 initialized 23for循环将永远不会执行。

于 2012-05-01T00:12:45.100 回答
6

你总是有三个组件,但其中任何一个都可能是空白的。所以你的第一个例子可以写成:

int j = 23;
for (; j < 20; j++) {
    // do stuff
}

(当然,这根本不做任何事情,因为 的初始值j大于 23,所以循环立即终止)。

于 2012-05-01T00:12:37.337 回答
5

您只能做两件事,但需要两个分号,因为 for 循环由初始化程序、条件和在每个循环上执行的操作组成。您当然可以将其中任何一项留空

for (; j < 20; j++) { 
     // do stuff
}

例如,您甚至可以有一个仍然递增 j 的无限循环

for (int j = 0; ; j++) { 
     // do stuff
}
于 2012-05-01T00:13:09.757 回答
2

您不能在此处省略分号。它应该是:

int j = 23;
for (; j < 20; j++) {
  //do stuff
}
于 2012-05-01T00:15:22.500 回答