我无法理解为什么输出在这个for循环中变为10

bha*_*yap 0 c++ loops for-loop cstdio

任何人都可以清楚我的怀疑..为什么这个程序给出10作为输出.你能解释一下机制吗... for循环也有; 在陈述之前

#include <iostream>
using namespace std;

int main() {
    int i ;
    for ( i =0 ; i<10 ; i++);
    {
      cout<<i ;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 6

for ( i =0 ; i<10 ; i++);
Run Code Online (Sandbox Code Playgroud)

这是一个完整的循环,末尾的分号表示空体.因此它i最终会增加到10.它10(而不是9)的原因是因为那是继续条件i < 10变为假的时候.

这意味着这个小片段:

{
    cout<<i ;
}
Run Code Online (Sandbox Code Playgroud)

是一个一次执行的语句,输出i(10循环左边)的内容.

在这种情况下,大括号只是将语句放入一个封闭的范围,它们根本不与循环相关.

因此,如果您希望i每次都通过循环输出,只需删除分号,以便大括号及其内容成为该循环的主体.