同题!
public class ArrayApp {
public static void main(String[] args)
{
int querykey=0;
int i;
int k;
int intarray[ ]={10,15,78,35,52,55,41,60,17,89};
int arraylength=intarray.length;
for (i=0;i<arraylength;i++)
System.out.print(intarray[i]+" ");
System.out.println();
querykey=60;
for(i=0;i<arraylength;i++)
if(intarray[i]==querykey)
break;
if(i==querykey)
System.out.println("No Found"+querykey);
else
System.out.println("FOUND"+querykey+" at "+i);
querykey=52;
for(i=0;i<arraylength;i++)
if(intarray[i]==querykey)
break;
for(k=i;k<arraylength;k++)
intarray[k]=intarray[k+1];
arraylength--;
for(i=0;i<arraylength;i++)
System.out.println(intarray[i]);
}
}
在eclipse 在运行结果如下:
10 15 78 35 52 55 41 60 17 89
FOUND60 at 7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at ArrayApp.main(ArrayApp.java:26)
我想的结果应是:
10 15 78 35 52 55 41 60 17 89
FOUND 60 at 7
10 15 78 35 55 41 60 17 89
运行时没有出错.为什么没有了下面一行,谢谢!!
public class ArrayApp {
public static void main(String[] args)
{
int querykey=0;
int i;
int k;
int intarray[ ]={10,15,78,35,52,55,41,60,17,89};
int arraylength=intarray.length;
for (i=0;i<arraylength;i++)
System.out.print(intarray[i]+" ");
System.out.println();
querykey=60;
for(i=0;i<arraylength;i++)
if(intarray[i]==querykey)
break;
if(i==querykey)
System.out.println("No Found"+querykey);
else
System.out.println("FOUND"+querykey+" at "+i);
querykey=52;
for(i=0;i<arraylength;i++)
if(intarray[i]==querykey)
break;
for(k=i;k<arraylength;k++)
intarray[k]=intarray[k+1];
arraylength--;
for(i=0;i<arraylength;i++)
System.out.println(intarray[i]);
}
}
在eclipse 在运行结果如下:
10 15 78 35 52 55 41 60 17 89
FOUND60 at 7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at ArrayApp.main(ArrayApp.java:26)
我想的结果应是:
10 15 78 35 52 55 41 60 17 89
FOUND 60 at 7
10 15 78 35 55 41 60 17 89
运行时没有出错.为什么没有了下面一行,谢谢!!
解决方案 »
- 代码出错了
- 关于Java程序名称规则的补充
- java环境变量的设置问题
- 关于二维数组数组Object[][]和List的转化
- 关于windows的问题.(JAVA如何关闭一个windows进程,如何修改windows设置)
- 返回DOS命令
- 用哪个类型替代ResultSet来返回
- 关于IE中applet的显示,索性就“无所示视”,可它偏有的可以有的不行,令人烦思……
- 微软提供的sql server的jdbc驱动可以设置字符集的属性吗
- 对象和类,精通的人会在潜意识中区别她,而不会的人觉得很难理解
- 鎬ワ紒锛侊紒jdk鐨刯ava銆俥xe闂
- 如果对通过comparator接口对 treemap中的值进行排序?
if()
后的语句,请都加到 {} 里, 无论是否只有一行
for(k=i;k<arraylength;k++)
改成
for(k=i;k<arraylength - 1;k++)你在试图把52之后的每个数字往前移一位的时候出了错
因为没有第十一个数字,所以intarray[9]=intarray[10];这句会报下标越界。
少循环一次就可以了。
导致的越界. 另外看你的代码第16行 if(i==querykey) 好象应该改为
if (i == arraylength)