JAVA程序出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 求高手解答,谢谢

public class ggg {
public static void main(String args[]){
int []Ft={2,34,32,21,345,432,33};
int i=0,j=0,temp=0;

for(j=0;j<8;j++){
for(i=0;i<8-j;i++){
if(Ft[i]>Ft[i+1]){
temp=Ft[i];Ft[i]=Ft[i+1];Ft[i+1]=temp;
}

}

}
for(i=0;i<8;i++){
System.out.print("Ft["+i+"]="+Ft[i]+" " );
}
}
}

public class Ggg {

   public static void main(String args[]){

int []Ft={2,34,32,21,345,432,33};

int i=0,j=0,temp=0;

 

     for(j=0;j<7;j++){

  for(i=0;i<6-j;i++){

if(Ft[i]>Ft[i+1]){

temp=Ft[i];Ft[i]=Ft[i+1];Ft[i+1]=temp;

                      }

                }

                 }

for(i=0;i<7;i++){

System.out.print("Ft["+i+1+"]="+Ft[i]+" " );

                      }

                  }

     }

可以了。

注意数组的下标变化,数组一般从0开始计数,即第一个数的下标是0;其次,类的名称第一个字母最好大写!!

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-11
Exception提示是数组越界错误
你看下for(j=0;j<8;j++){
for(i=0;i<8-j;i++){
if(Ft[i]>Ft[i+1]){
temp=Ft[i];Ft[i]=Ft[i+1];Ft[i+1]=temp;
这段代码 数组定义是int []Ft={2,34,32,21,345,432,33};
最大length是7,你的循环超过范围了
数组下标从0开始,当你的j=0的时候,第二个for循环的i从0以1递增到7,也就是总共是8个,超出了定义的Ft数组的范围了追问

我改成6了,却又出现Ft[0]=2 Ft[1]=21 Ft[2]=32 Ft[3]=33 Ft[4]=34 Ft[5]=345 Ft[6]=432 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at ggg.main(ggg.java:17)
为何正常输出了,后面还有错误提示,我自己还没学到异常处理,是那个么?

追答

不能啊,你看下你有没有把
for(i=0;i<8;i++){
System.out.print("Ft["+i+"]="+Ft[i]+" " );
for里面的i改成7?

本回答被提问者采纳
第2个回答  2011-05-11
Ft[i+1]当i=7时i+1不是=8数组总长才8,下标是0-7所以才会数组越界。
第3个回答  2011-05-11
这是排序吗?ft七个元素,for(j=0;j<8;j++) j==7时,越界了

...thread main java.lang.ArrayIndexoutofbounds exeption:4_百度知 ...
for(int i=1;i<=4;i++) 这句循环越界了,你只是JButton[] fuy1=new JButton[4];数组里面只有0-3的位置有数据,但是你却循环到了四。exception in thread main java.lang.ArrayIndexoutofbounds 这句就是提示数组越界的异常。

java程序出现Exception in thread "main"是什么问题?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException 这句话表示异常出现在main这个线程里面,错误是java.lang.ArrayIndexOutOfBoundsException。这个错误是你下标获取超出范围了,一般是例如你数组长度为2.但是你获取数组[3].这时候就会报这个错,建议你自己学会调试。。希望能够帮到你!

java程序出现Exceptioninthread"main"是什么问题?
当你在Java程序中遇到"Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException"这样的错误时,首先要明白这是主线程中出现的异常,具体指向了Java.lang.ArrayIndexOutOfBoundsException。这个异常的发生意味着你在访问数组时超出了其指定的索引范围。想象一下,如果你有一个长度为2的数组,但尝试...

...main" java.lang.ArrayIndexOutOfBoundsException:0是怎么回事_百度...
java Sum 5 args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av....

...main" java.lang.ArrayIndexOutOfBoundsException: 求高手解答,谢谢...
public static void main(String args[]){ int []Ft={2,34,32,21,345,432,33};int i=0,j=0,temp=0;for(j=0;j<7;j++){ for(i=0;i<6-j;i++){ if(Ft[i]>Ft[i+1]){ temp=Ft[i];Ft[i]=Ft[i+1];Ft[i+1]=temp;} } } for(i=0;i<7;i++){ System.out....

...main" java.lang.ArrayIndexOutOfBoundsException: 0
回答:r=Double.parseDouble(args[0]); 数组下标溢出,public static void main(String[]args)这里只定义数组又没初始化你着急用个啥啊!你完全可以在控制台让用户输入一个半径参数用嘛 Scanner in=new Scanner(System.in); Sysout.out.print("请输入半径:"); int radis=in.nextInt();

...main" java.lang.ArrayIndexOutOfBoundsException: 9 at My_百度...
public class MySort { static void sort(int []a){ int com;\/\/int al=a.length;\/\/int []b=new int[al];\/\/if(al>=0){ for(int j=0;j<9;j++){ for(int i=1;i<9-j;i++){ if(a[i]<a[i-1]){ \/\/a[i+1]错了,导致数组溢出 com=a[i-1];a[i-1]=a[i];a...

java程序出现Exception in thread "main"是什么问题?
当你在Java程序中遇到"Exception in thread "main""这样的错误时,这意味着异常发生在程序的主要执行线程中。具体来说,错误信息"java.lang.ArrayIndexOutOfBoundsException"表示你尝试访问的数组索引超出了其范围。数组索引通常从0开始,如果你有一个长度为2的数组,你不能访问索引3,因为3是数组边界...

...main" java.lang.ArrayIndexOutOfBoundsException: 0
你运行时没有给main方法传参数,args[] 这个数组为空,所以下标越界。你在运行时应该先配置运行参数,给 main方法传数字进去。或者int t=12345;直接指定一个数字

...main" java.lang.ArrayIndexOutOfBoundsException: 1
a.f[3]代表第四个数了, 你没有第四个数。所以数组超出范围了 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1这个也可以看出 Array是数组意思对把 index就是索引意思对把 out 就是超出的意思 合起来看这个提示错误 就是你的数组超出了范围了。希望能让你学到~...

相似回答
大家正在搜