For循环基本输出

时间:2019-08-11 05:17:02

标签: c++

这是一个非常基本的问题,我可能会对此感到困惑,但是如果我有一个for循环:

for (int i = 0; i < n; i++)
cout << " " << i;

现在,假设n = 3。

i = 0,i <3,i = 0 + 1 = 1

i = 1,i <3,i = 1 + 1 = 2

i = 2,i <3,i = 2 +1 = 3

i = 3,i <3(假)

因此程序终止并输出0,1,2,3(我知道这是错误的,但是它不应该显示所有这些值,因为当i = 2时,它满足条件,而现在i = 3,所以程序也应该输出3?

对不起,如果这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

语句for (A; B; C) D;大致等同于:

 {
     A;
     while (B)
     {
         D;
         C;
     }
}

请注意,在执行循环中的语句之前已检查条件。请注意,在执行该语句之后立即检查条件,并且在再次运行该语句之前还要检查条件。

因此您的示例从不输出i = 3,因为当i为3时,条件为false,并且条件总是在执行循环语句之前被检查。

我个人的建议是避免对if语句变得机灵。了解诸如i != 0i < ni <= n之类的条件以及其他一些条件,并且在这些简单情况下,仅使用if语句。否则,很可能有人会错误地读取代码。