题很简单,生成25个1到100之间的随机数,打印它们,并在相邻的两个数字之间打印 > 、 < 、 =。 比如 11 > 2 < 5 < 90 > 89 > 17 ...

现在遇到的问题是报错,这个错误该怎修改?

//我写的代码如下
import java.util.*;
public class A{
    public static void main(String[] args){ 
        Random rand=new Random();
        int []a=new int[25];
        for (int i=0;i<a.length ;i++ ) {
            int r=rand.nextInt(100)+1;
                a[i]=r;
        }
        String s="";
        String x="";
        for (int i=0;i<25 ;i++ ) {
            
            if (a[i]>a[i+1]) {
                s=s+">"+a[i+1];
            }
            if (a[i]<a[i+1]) {
                s=s+"<"+a[i+1];
            }
            if (a[i]==a[i+1]) {
                s=s+"="+a[i+1];
            }
            x=s;
            System.out.println(a[0]+x);
        }
    }
}

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容

8<50
8<50>40
8<50>40<70
8<50>40<70>42
8<50>40<70>42<81
8<50>40<70>42<81>61
8<50>40<70>42<81>61>24
8<50>40<70>42<81>61>24<76
8<50>40<70>42<81>61>24<76>3
8<50>40<70>42<81>61>24<76>3<100
8<50>40<70>42<81>61>24<76>3<100>5
8<50>40<70>42<81>61>24<76>3<100>5<27
8<50>40<70>42<81>61>24<76>3<100>5<27<81
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54<83
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54<83>40
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54<83>40>14
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 25
at A.main(A.java:14)

输出完成 (耗时 0 秒) - 正常终止

我的解答思路和尝试过的方法
我想要达到的结果

img

这里的a[i+1]会访问到a[25] 但是数组开辟空间只开到a[24],没a[25],造成了越界访问


简单来说就是:数组所创建的范围已经超过使用的范围了——越界了

希望对题主有所帮助!可以的话,帮忙点个采纳!

错误意思是数组访问越界了。下标值超出了数组的长度
if (a[i]>a[i+1]) {
s=s+">"+a[i+1];
这里有问题啊,当i等于24的时候,a[i+1]就是a[25],越界了,最大下标是24
你需要判断i是否为24,如果是24,直接输出a[i]就可以了,最后一个元素不需要考虑大于还是小于