【发布时间】:2015-11-23 16:17:08
【问题描述】:
这是我制作的程序,我什至做了一个从 0 到 4 的正确 for 循环,因为需要对 5 个数字进行排序,但仍然得到 arrayindexoutofboundsexception。
import java.util.*; class wst2 {
public static void calc()
{
Scanner sc= new Scanner(System.in);
int i,j , temp;
int a[]=new int [5];
for(i=0;i<=4;i++)
{
System.out.println("Enter 5 numbers");
a[i]=sc.nextInt();
}
for(i=0;i<=4;i++)
{
for(j=i;j<=4-i;j++)
{
if(a[j] > a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<=4;i++)
{
System.out.println(a[i]);
}
} }
【问题讨论】:
-
您循环到
j<=4,但访问元素a[j+1]。现在您在最后一次迭代中访问索引 5 处的元素,这会导致您的错误。 -
那么应该改哪一行?
-
不要使用
4作为固定循环确定值,您可以循环直到i<a.length-1进行排序。 -
长度是 5 ,所以 5-1 无论如何都会给出 4 。它有什么帮助?
-
这是一个示例,基本上是逐字逐句地说明您要执行的操作:crunchify.com/java-bubble-sort-algorithm-ascending-order-sample 在 for 循环中将
标签: java for-loop bubble-sort