我有两个数组:
int array1 [] = {1,2,3,4,5,6,7};
[这个阵列可以增长到很多]
int array2 [] = {1,2,3};
[最大可能有30个元素]
array1应该是父循环,并且将包含比array2更多的元素。例如,我必须安排如下:
预期结果:
1-1
2-2
3-3
4-1
5-2
6-3
7-1
我该怎么办?
答案 0 :(得分:5)
在这种情况下,您不需要嵌套循环;你需要的只是正确使用模数运算符。
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i] + "-" + array2[i % array2.length]);
}
这样做的原因是模数运算符非常适合您的问题。您尝试执行的操作需要反复遍历列表(array2
)并回绕到开头。模数运算符本质上是一个“包装”运算符;逐步思考,它允许你在每次达到一定数量时回到0(在这种情况下,大小为array2
)。
答案 1 :(得分:1)
所以你有两个集合,你想循环遍历较大集合(array1)的每个元素,并为集合的每个元素打印元素,以及set2(array2)的下一个元素。
我使用enhanced for loop,它遍历每个元素,然后modulus有效地将i
限制为小于set2的长度。 (如果除以3,则余数必须小于3)
这允许我们使用i
向i++
添加一个,并确保它始终循环回到第一个元素,就像值在spinner上一样。
int i = 0;
for( int value : array1 ) {
System.out.print( value + "-" + array2[i++ % array2.length] );
}