在更复杂的for loops
中,我用来在for
中声明更多的一个变量,如果它们用于迭代,则类似:
for (int i = 0, j = size; i < j; ++i, --j)
直到最近我才认为它是for
语法,但现在我知道int i = 0, j = size
被视为一个声明,++i, ++j
被视为由{{分隔的两个表达式1}}。这意味着我只能在for。
comma operator
中声明一种类型的变量
如何在更多类型的init-expression
变量中声明,例如:
for statement
我知道我可以在for (int i = 0, auto it = v.begin(); ..; ..)
之外声明变量。这些例子是我刚才提出的,所以也许它们没有意义,但我遇到了一些真实的例子,在for
中声明更多变量对我来说似乎是合乎逻辑的。
答案 0 :(得分:3)
你做不到。一个简单的规则是,for
循环可以声明多个变量,只要所有变量具有相同的类型。
答案 1 :(得分:-1)
你实际上可以。请参阅以下示例:
for(int i=0,j=1;i<=5,j<=5;i++,j++)
因为i和j在条件语句中用逗号分隔,因为j在i后面递增,只要j满足其条件,即达到计数5,该循环将终止。因此,您需要处理第二个变量的条件。