私が持っているとしましょう
int j = 23;
for (j < 20; j++) {
//do stuff
}
私はそれがこの文脈ではばかげているように見えることを知っていますが、これは可能ですか?またはあなたはする必要がありますか
int j = 23;
for (j; j < 20; j++) {
//do stuff
}
通常、空の初期化子を使用します。
for (; j < 20; ++j)
確かに、これは単なる例ですが、j
が初期化されている場合23
、for
ループはまったく実行されません。
常に3つのコンポーネントがありますが、いずれも空白の場合があります。したがって、最初の例は次のように書くことができます。
int j = 23;
for (; j < 20; j++) {
// do stuff
}
(もちろん、の初期値はj
23より大きいため、ループはすぐに終了するため、これは何もしません)。
実行できることは2つだけですが、forループは初期化子、条件、およびすべてのループで実行する操作で構成されているため、2つのセミコロンが必要です。もちろん、これらのいずれかを空白のままにすることができます
for (; j < 20; j++) {
// do stuff
}
たとえば、jをまだインクリメントする無限ループを持つこともできます。
for (int j = 0; ; j++) {
// do stuff
}
そこでセミコロンを省略することはできません。そのはず:
int j = 23;
for (; j < 20; j++) {
//do stuff
}