誰も私の疑問を解消できますか..なぜこのプログラムは出力として10を与えているのですか? メカニズムを説明していただけますか.. for ループもあります。ステートメントの前にも
#include <iostream>
using namespace std;
int main() {
int i ;
for ( i =0 ; i<10 ; i++);
{
cout<<i ;
}
return 0;
}
for ( i =0 ; i<10 ; i++);
これは完全なループです。最後のセミコロンは空の本体を示します。したがって、i
最終的には単純に増加し10
ます。それが10
(ではなく9
)理由は、継続条件i < 10
が偽になるときだからです。
つまり、この小さなスニペットは次のことを意味します。
{
cout<<i ;
}
(ループによって残された) の内容を出力する、一度実行されたステートメントです。i
10
この場合の中かっこは、ステートメントを囲まれたスコープに入れるだけで、ループとはまったく関係ありません。
i
したがって、ループを介して毎回出力したい場合は、セミコロンを削除して、中括弧とその内容がそのループの本体になるようにします。
for ( i =0 ; i<10 ; i++); // This means loop till i = 10 at which point loop breaks. This is because of ending the for loop with ';'
{ // start of scope
cout<<i ; // Print the value of i which is 10 now
} // end of scope
ループが i = 9 のポイントに達したと考えてください。したがって、'i < 10' 条件は真です。
したがって、次の反復では 'i++' によって 10 にインクリメントされます。
ここで再びテスト 'i < 10' がチェックされます。この時点で、'10 < 10' テストは false を返し、for ループが中断され、i の値は 10 になります。