已解决 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];
 
解决方案

在线会员

  • 祁弈
  • inkdye
  • linchengran
  • 小叶
  • Prince.
  • 浮夸的人生
  • CHL_chun
  • RawDiamond
  • wenjing
  • 52010x
  • liang_yie
  • Cyaniuu
  • Coquettishpig
  • k kkljlk
  • 1395539767
  • 帝皇侠H
后退
顶部 底部