Java for循环:为什么我不能在for循环'中声明两个变量'?

时间:2014-09-07 22:05:00

标签: java programming-languages

我一直在想,为什么不编译?

for(int i=0, int q=0; i<a.length; i++){
   ...
}

为什么Java不允许我在for循环'header'中声明多个变量?这背后有合理的原因吗?

2 个答案:

答案 0 :(得分:6)

for中的分号分隔三个不同的部分,每个部分具有完全不同的目的(初始化,条件和操作)。添加更多分号只会使解析器混淆,因为解析器无法确定哪一个意味着什么。你试过吗

for (int i = 0, q = 0; i < a.length; i++)

代替?您可以根据需要添加任意数量的变量,但只能添加一种类型:

for (int i = 0, q = 0, r = 0, ...; i < a.length; i++)

这种限制很可能是从C继承的,它具有相同的行为。

答案 1 :(得分:2)

因为您已初始化int

正确的语法是:

    for (int i = 0, b = 0; i < 5; i++) {
        //....
    }

就像你做的那样

private int a,b;private int a = 55, b = 52;

在Java中,您可以(并且必须)使用逗号设置值,仅声明类型一次。

Object a, b, c, d;

等等。

同样适用于添加多个条件&amp;动作:

    for (int i = 0, b = 0; i < 5 && b > 7; i++, b++) {
        // Yay
    }