打印具有不同长度的数组的嵌套循环

时间:2015-02-01 00:32:16

标签: java arrays

我正在开发一个大型系统的原型,但是我遇到了使用for循环从两个不同数组中获取值的问题。出现问题是因为两个数组都有不同的长度,但我需要它们在同一个循环中运行。 FYI ArrayOne将始终具有+1长度的ArrayTwo。谁能想到让下面的代码有效的方法呢?

谢谢。

for (int i = 0; i < getArrayOne().length; i++) {            
    System.out.print(getArrayOne()[i] + " " + getArrayTwo()[i] + " ");
}

1 个答案:

答案 0 :(得分:2)

每次打印前,请确保i在第二个数组的范围内:

for (int i = 0; i < getArrayOne().length; i++) {        
    System.out.print(getArrayOne()[i] + " ");
    if(i < getArrayTwo().length) { // check that i is within bounds of ArrayTwo
        System.out.print(getArrayTwo()[i] + " ");
    }
}

或者,既然你知道:

  

ArrayOne将始终具有+1长度的ArrayTwo

你可以运行你已经达到ArrayTwo长度的循环(较短的循环),然后打印ArrayOne的剩余元素

int i = 0;
for (; i < getArrayTwo().length; i++) {            
    System.out.print(getArrayOne()[i] + " " + getArrayTwo()[i] + " ");
}
System.out.print(getArrayOne()[i]);

请注意,如果条件ArrayOne.length == ArrayTwo.length + 1不是真的,这将会中断或无法正常工作。