int main(int argc, char *argv[]) {
int i = 0;
for (i = 0; i < 50; i++)
if (false) break;
}
VS 2010 でコンパイルおよび実行されます (VS 2008 でも同じ問題)。最後の行 (閉じ括弧) にブレークポイントを置き、デバッガーを介して変数 i を調べます。このコードは i を 0 のままにします。なぜですか?
int main(int argc, char *argv[]) {
int i = 0;
for (i = 0; i < 50; i++)
if (false) break;;
}
この後 - ブレークの後の 2 番目のセミコロンに注意してください - i は予想どおり 50 です。
誰かが私にこの奇妙な振る舞いを説明してもらえますか?