次のコード スニペットがあり、取得している出力は 4 です。i=2 か 0 かを説明してください。混乱しています。そして、どのように出力されましたか 4?
int main() {
int i=2;
for(i=0;i<2;i++) {
i=i%3;
if(i==2) {
i++;
continue; }
else
++i;
}
printf("%d",i);
}
でループが始まります i = 0。ifと はまったくelse同じものです。増分iして続行します。
少しのロジックを使用すると、ブロック全体をi++(i = i % 3以来効果がありませんi < 2) に減らすことができます。
4あなたが投稿したコードで取得することはできません。
4ループが壊れるまでに、 の値は ではなく、ループは 1 回だけ実行されるため、投稿したプログラムiの2出力4を出力することはできません。
また、ループが終了するまでにループ内で条件が真になることは決してないため、コードがifブロックに入ることはありません。i==2for
したがって、あなたのコードはこれと同等です:
int main() {
int i=2;
for(i=0;i<2;i++) {
i++;
}
printf("%d",i);
}