public class Test {
public static void main(String[] args) {
int arr[] = {1,2,3,4};
int i=0;
while (i<20)
{
System.out.println(arr[?]);
}
}}
我们应该写什么代替?这样就不会发生ArrayIndexOutOfBounds
异常,输出如下?
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
答案 0 :(得分:2)
使用modulu 4,因为这会给你0到3之间的整数,这是你的数组的索引:
System.out.println(arr[i%4]);
但别忘了增加我。
int arr[] = {1,2,3,4};
int i=0;
while (i<20)
{
System.out.println(arr[i%4]);
i++;
}
一个更简洁的解决方案(虽然我认为可读性较差),将结合这两个陈述:
System.out.println(arr[(i++)%4]);
答案 1 :(得分:1)
您希望数组索引始终为{0,1,2,3}中的一个。
mod n(%n)操作将在[0,n-1]中得到结果。
所以你可以这样写:
System.out.println(arr[(i++)%4]);
答案 2 :(得分:0)
使用此解决方案,可以改变阵列的长度。并且&#39;我&#39;可以采取任何价值。因此不会发生Array Index Out Of Bound异常。
System.out.print(arr[i++%arr.length]);