• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~

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

新生

【Lv:2】

注册
2021/09/05
消息
44
金粒
5,133金粒
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];
 
解决方案

在线会员

  • 没钱的山海
  • 合成天下精品大果
  • 蒙古王R
  • StarKMyh
  • mmyddd
  • zhenzhenqaq
  • frnch9
  • hhbsbb
  • hey2smile
后退
顶部 底部