我正在开发一个大型系统的原型,但是我遇到了使用for循环从两个不同数组中获取值的问题。出现问题是因为两个数组都有不同的长度,但我需要它们在同一个循环中运行。 FYI ArrayOne将始终具有+1长度的ArrayTwo。谁能想到让下面的代码有效的方法呢?
谢谢。
for (int i = 0; i < getArrayOne().length; i++) {
System.out.print(getArrayOne()[i] + " " + getArrayTwo()[i] + " ");
}
答案 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
不是真的,这将会中断或无法正常工作。