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

时间:2016-05-30 13:47:43

标签: 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;
}

2 个答案:

答案 0 :(得分:6)

for ( i =0 ; i<10 ; i++);

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

这意味着这个小片段:

{
    cout<<i ;
}

是一个曾经执行过的语句,输出i的内容(循环在10左侧)。

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

所以,如果你想每次循环输出i,只需删除分号,使大括号及其内容成为该循环的主体。

答案 1 :(得分:3)

ClientException in RequestException.php line 107:
Client error: `POST https://ssl.reddit.com/api/v1/access_token` 
resulted in a `429 Too Many Requests` response:
{"error": 429}

考虑到循环已达到i = 9的点,因此,'i&lt; 10'的条件是真的。
因此,对于下一次迭代,'i ++'会将其增加到10 现在再次测试'i&lt;检查10'。此时'10&lt; 10'测试返回false,for循环中断,i的值为10。