在C++中,For循环中有一个不递增的变量可以接受吗

Is it acceptable in C++ to have a non incremented variable in a For Loop?

本文关键字:变量 C++ For 循环 有一个      更新时间:2023-10-16

所以我正在尝试学习C++,我有一个循环:

if (userNumber >= 0) 
{
     for(double i = userNumber; i < userNumber + 10; i)
     {
         cout << ++i << endl;
     }
}

这与具有相同的输出

if (userNumber >= 0) 
{
     for(double i = userNumber; i < userNumber + 10; i++)
     {
         cout << i + 1 << endl;
     }
}

第一种形式可以接受吗,还是风格不好?

第一个代码段的糟糕风格是有未使用的语句i。在这种情况下首选:

for(int i = userNumber; i < userNumber + 10; /*empty*/)
{
    cout << ++i << endl;
}

对于琐碎的情况,第二个片段越清晰越好。

两者都有效,第二个更显式且可读。由于ifor循环块中没有被修改,因此可以立即说出循环将迭代多少次。

C++标准中定义的for语句为:

for ( for-init-statement; optional condition; optional expression) statement

相当于

{
    for-init-statement
    while ( condition ) {
        statement
        expression ;
    }
}

除了在for-init语句中声明的名称与在条件中声明的那些名称在同一声明性区域中,以及除了continuein语句(未包含在另一个迭代语句中)将在重新计算条件之前执行表达式。

所以两者都是有效的。但第二个更像是C++风格,因为表达式部分应该让你了解如何控制循环。