升序冒泡排序 java.lang.ArrayIndexOutOfBoundsException:5 在 wst2.calc(wst2.java:18)

Ascending Order Bubble sort java.lang.ArrayIndexOutOfBoundsException: 5 at wst2.calc(wst2.java:18)

这是我编写的程序,我什至做了一个从 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]);
        }
    } }

这条语句int a[]=new int [5];定义了一个长度为5的数组。 对于长度为 5 的数组,您可以访问索引形式为 04 ({0, 1, 2, 3, 4}) 的元素。 但是在这一行

a[j]=a[j+1];

在可能的特定情况下(j = 4i = 0),您正在尝试访问不允许的 a[4+1](即 a[5])。