为什么这样写会报错
来源:4-1 冒泡排序
weixin_慕先生7531528
2022-07-12 20:05:37
int timp;
int [] st={1,7,5,6,4,2,8};
System.out.println("数组排序前");
for(int n:st) {
System.out.println(n+" ");
}
//0 1 2 3 4 5 6
for(int i=0;i<st.length-1;i++) {
for(int j=st.length-1;j>=i;j--) {
if(st[j]<st[j-1]) {
timp=st[j];
st[j]=st[j-1];
st[j-1]=timp;
}
}
}
for(int n:st) {
System.out.print(n+" ");
}
1回答
好帮手慕小黑
2022-07-13
同学你好,同学代码中内层循环有误,条件表达式j>=i,应该改为j>i,否则会报数组越界异常,原因是当外层循环i=0;,j=i时,在判断条件中st[j-1],数组下标就会变成-1,就会发生数组越界。
祝学习愉快!
相似问题