while
和 for
循环的范围是什么?
例如,如果我在循环中声明了一个对象,它的行为是什么,为什么?
最佳答案
在以下示例中,除了 i
之外,所有变量都在循环的每次迭代中被销毁并重新创建,i
在循环迭代之间持续存在并且可用于 for 循环中的条件表达式和最终表达式。在循环之外没有任何变量可用。 for 循环体内的变量在 i
递增之前销毁。
while(int a = foo()) {
int b = a+1;
}
for(int i=0;
i<10; // conditional expression has access to i
++i) // final expression has access to i
{
int j = 2*i;
}
至于为什么;循环实际上只为它们的主体使用一个语句,只是碰巧有一个由花括号创建的称为复合语句的语句。在任何复合语句中创建的变量的范围仅限于复合语句本身。所以这确实不是循环的特殊规则。
循环和选择语句对于作为循环或选择语句本身的一部分创建的变量确实有自己的规则。这些只是根据设计师认为最有用的东西设计的。
关于c++ - 'while' 和 'for' 循环的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880658/