次のコード スニペットがあり、取得している出力は 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==2
for
したがって、あなたのコードはこれと同等です:
int main() {
int i=2;
for(i=0;i<2;i++) {
i++;
}
printf("%d",i);
}