所以基本上我想制作一个算法来改组我的数组,我只有这个:
import java.util.*;
class MixUp{
public static void main(String args[]){
int temp, i=0;
boolean flag=true;
int Table[] = new int[5];
Scanner input = new Scanner(System.in);
for(i=0; i<5; i++){
System.out.println("Number? : ");
Table[i] = input.nextInt();
}
for(i=0; i<5; i++){
System.out.printf(Table[i] + "\t");
}
for(i=0; i<5; i++){
temp = Table[i+1];
Table[i+1] = Table[Table.length-i];
Table[Table.length-i] = temp;
if(i+1 == Table.length-i) break;
}
for(i=0; i<5; i++){
System.out.printf(Table[i] + "\t");
}
}
}
它不断弹出
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5 在MixUp.main(MixUp.java:17)
答案 0 :(得分:2)
你的第二个最后一个循环在i<5
时迭代,这很好,但随后尝试访问Table[i+1]
。如果i=4
这将导致尝试访问Table[5]
,这当然不是有效索引。
修复此问题的一种方法是将该循环的条件更改为i<4
而不是i<5
。
答案 1 :(得分:0)
Table[Table.length-i];
当i = 0
时,此代码将始终崩溃答案 2 :(得分:0)
修正了它!
for(i=1; i<5; i++){
temp = Table[i];
Table[i] = Table[Table.length-i];
Table[Table.length-i] = temp;
if(i+1 == Table.length-i) break;
}
感谢您的帮助!