已解决 Java新人关于一个反转程序无法运行的疑问

新生

【Lv:2】

注册
2021/09/05
消息
43
金粒
5,133.09金粒
Java:
public class LEARN20 {
    //这个是一个反转的练习,理论上是没问题的,但是却跑不了
    public static void main(String[] args) {

        int[] arr1 = {11,22,33,44,55};
        int[] arr2 = new int[5];

        for (int a = 0; a < arr1.length; a++ ) {
            arr2[a] = arr1[arr1.length - a];
        }

        for (int b = 0; b < arr1.length; b++) {
            System.out.println(arr1[b]);
        }

        for (int c = 0; c < arr2.length; c++) {
            System.out.println(arr2[c]);
        }
    }
}
2.
大佬们好,本人正在学习Java。这个练习的目的是将arr1的五个数反过来赋值给arr2。然后再打印结果。
结果却打印出这:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at LEARN20.main(LEARN20.java:9)
求大佬帮忙解答为什么会这样。我该怎么做?
 
解决方案
Java:
public class LEARN20 {
    //这个是一个反转的练习,理论上是没问题的,但是却跑不了
    public static void main(String[] args) {

        int[] arr1 = {11,22,33,44,55};
        int[] arr2 = new int[5];

        for (int a = 0; a < arr1.length; a++ ) {
            arr2[a] = arr1[arr1.length - a];
        }

        for (int b = 0; b < arr1.length; b++) {
            System.out.println(arr1[b]);
        }

        for (int c = 0; c < arr2.length; c++) {
            System.out.println(arr2[c]);
        }
    }
}
2.
大佬们好,本人正在学习Java。这个练习的目的是将arr1的五个数反过来赋值给arr2。然后再打印结果。
结果却打印出这:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at LEARN20.main(LEARN20.java:9)
求大佬帮忙解答为什么会这样。我该怎么做?
亲,下标要-1,不然就越界了...
Java:
public class LEARN20 {
    //这个是一个反转的练习,理论上是没问题的,但是却跑不了
    public static void main(String[] args) {

        int[] arr1 = {11,22,33,44,55};
        int[] arr2 = new int[5];

        for (int a = 0; a < arr1.length; a++ ) {
            arr2[a] = arr1[arr1.length - a];
        }

        for (int b = 0; b < arr1.length; b++) {
            System.out.println(arr1[b]);
        }

        for (int c = 0; c < arr2.length; c++) {
            System.out.println(arr2[c]);
        }
    }
}
2.
大佬们好,本人正在学习Java。这个练习的目的是将arr1的五个数反过来赋值给arr2。然后再打印结果。
结果却打印出这:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at LEARN20.main(LEARN20.java:9)
求大佬帮忙解答为什么会这样。我该怎么做?
亲,下标要-1,不然就越界了
Line 9: arr2[a] = arr1[arr1.length - a];
改为 arr2[a] = arr1[arr1.length - a - 1];
 
解决方案

在线管理成员

在线会员

  • 闽东阿杰
  • Red_Maple_233
  • chongyang
  • HYyy
  • 蒜大人
  • zsdr
  • zhuobaozb
  • 刀哥
  • jabm
  • ge-集权
  • User.Time
  • 完全
  • YUS2026
  • _Chinyou
  • zao
  • lkiter
  • keys123
  • xcvj
  • 星河很哇塞
  • Dawn7xx
...和 16 更多。
后退
顶部 底部