我有一个非常简单的问题,但我似乎无法解决它。我在这段代码上出现了越界错误
int c = 0;
System.out.println();
System.out.println("Printing array in Reverse order:");
for (int i = array.length ; i >= -1; i--)
{
System.out.println(array[i] +" ");
c++;
if(c == 10)
{
System.out.println();
c=0;
}
}
这笔交易是什么?
答案 0 :(得分:3)
for (int i = array.length ; i >= -1; i--) {
错误,数组从索引零开始,所以"长度"数组是从索引0到索引"长度 - 1"
所以你的代码错了,你应该使用
for (int i = array.length - 1 ; i >= 0; i--) {
答案 1 :(得分:0)
你得到一个IndexOutOfBounds因为你从数组
开始int c = 0;
System.out.println();
System.out.println("Printing array in Reverse order:");
for (int i = array.length -1; //HERE
i >= 0;//HERE
i--) {
System.out.println(array[i] +" ");
c++;
if(c == 10) {
System.out.println();
c=0;
}
}
答案 2 :(得分:0)
在Java中,数组索引从0到“length - 1”。因此,如果您从array.length
开始,您将尝试访问阵列的位置。如果您尝试访问-1索引,则会出现相同的情况,因为您的最小索引为0.
答案 3 :(得分:0)
这是一小段代码,可以让你反过来:)
public class newarray {
public static void main(String args[]){
int arr[]={10,20,30};
int size=arr.length;
for(int i=size-1;i>=0;i--){
System.out.println(arr[i]);
}
}
}
OutPut:
30 20 10