到目前为止,最常使用的循环语句的C + +的for语句。for语句的理想时,我们知道多少次,我们需要重复,因为它让我们很容易地声明,初始化,和在每次迭代循环变量的值的变化。
for语句看起来很简单:
对于(初始化语句;expr1;expr2)
声明;
考虑循环的最简单方法是将它们转换成等效的while循环。在老版本的C + +,上述循环是完全等价的:
/ /旧编译器
初始化语句;
而(讲)
{
声明;
表达式;
}
然而,在新的编译器,声明的变量的初始化语句在现在被认为是范围内的块而不是在它的外面。这被称为循环范围。循环变量只存在于回路,而不在外面。因此,在新的编译器,上述循环实际上是相当于下面的语句:
/ /新的编译器
{
初始化语句;
而(讲)
{
声明;
表达式;
}
} //变量初始化声明超出范围
一种说法是在3部分的评价:
1)初始化语句进行评估。通常,初始化语句包括变量的声明和赋值。这种说法只计算一次,当环是第一次执行。
2)表达式expr1的评价。如果expr1的值为false,循环终止立即。如果expr1的值为true,执行语句。
3)语句执行后,表达expr2的评价。通常,这个表达式由递增/递减在初始化语句中声明的变量。在表达式进行循环返回到步骤2。
让我们来看看一个例子看看环: