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が初期化されている場合23forループはまったく実行されません。

于 2012-05-01T00:12:45.100 に答える
6

常に3つのコンポーネントがありますが、いずれも空白の場合があります。したがって、最初の例は次のように書くことができます。

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

(もちろん、の初期値はj23より大きいため、ループはすぐに終了するため、これは何もしません)。

于 2012-05-01T00:12:37.337 に答える
5

実行できることは2つだけですが、forループは初期化子、条件、およびすべてのループで実行する操作で構成されているため、2つのセミコロンが必要です。もちろん、これらのいずれかを空白のままにすることができます

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 に答える