如何在C++ for-loop体内显示循环控制变量没有改变?

sha*_*oth 9 c++ loops for-loop const

在C++中,允许在for循环中更改循环变量:

for( int i = 0; i < limit; i++ ) {
    if( condition ) {
       i--;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果循环体相当复杂,那么对于读取器来说,循环变量是否在循环体内是否发生变化并不是很明显.以某种方式调整代码是很好的,这样一旦读者只看到for-loop头,他就会立即知道循环变量在体内没有改变.

例如,如果我使用const:

const int value = computeValue();
//lots of code here
Run Code Online (Sandbox Code Playgroud)

那么很明显,无论代码写在const变量定义下面,变量都是不变的.

有没有办法实现类似的东西 - 迭代中的逻辑常量 - 在C++中的for循环控制变量的情况下?

Act*_*lis 1

没有逻辑结构来强制执行这一点。如果将 \xe2\x80\x98const int idx = i\xe2\x80\x98 作为循环中的第一条语句,然后仅使用 \xe2\x80\x98idx\xe2\x80\x98,你也许能够实现类似的强制执行,但失去了一些清晰度。否则,只需使用注释即可。

\n