基本的に、ループは結果を反復処理する方法が原因で終了できません。
のあなたの価値i = 1
。
問題はあなたが入れたことi += 2
です。
これが問題を引き起こす理由は、次のようにすべての値を通過するためです。
i = 1
i <= 10
:ループの失敗は続行されます。
i = 3
:まだ基準を満たしていないために失敗しi <= 10
、ループはまだ繰り返されます。
i = 5
:満たされていないために失敗しi <= 10
、ループが続行されます。
i = 7
:満たされていないために失敗しi <= 10
、ループが続行されます。
i = 9
i <= 10
:まだあなたの基準を満たしていないために失敗します。
その最後の反復は失敗するため、実際には別の時間に実行されます。ループを特定の回数実行しようとする場合は、より簡潔な数学的表現を使用して正しく反復する必要があります。i <= 10
必要な回数のバランスが取れていないため、 1回の追加の反復が発生します。
しかし、それが11である理由です。これは、最後の値が満たされた条件を満たしていないためです。
ここで、ループを5回実行する場合は、次のようにします。
int i;
for(i = 1, i <= 5, i +=1 );
次のようにすることもできます。
int i;
for(i = 5, i <= 20, i += 5);
それが異なる数字でのあなたの当初の目標であったかどうかはわかりませんが、うまくいけばそれが役立つでしょう。私は間違って追加したかもしれませんが、うまくいけば、それはあなたを正しい方向に向けます。