在C中,更改循环中的循环变量是允许的:
for( int i = 0; i < limit; i++ ) { if( condition ) { i--; } }
现在如果一个循环体是相当复杂的,那么阅读器中循环变量是否在循环体内变化是不明显的.在某种程度上调整代码将是一件很好的事情,一旦读者只看到for-loop标题,他马上知道在体内没有改变循环变量.
例如,如果我使用const:
const int value = computeValue(); //lots of code here
那么很明显,无论代码如何在const变量定义下面写入,变量是不变的.
有没有办法在迭代中实现类似的逻辑常量 – 在C中的循环控制变量的情况下?
解决方法
我不认为这是可能的手工循环,但我猜这可以被认为是鼓励使用
std::for_each和
BOOST_FOREACH迭代STL容器的另一个参数.
编辑…和C 0x range-based for-loop(感谢Matthieu.M 原文链接:https://www.f2er.com/c/111104.html