【问题标题】:to reverse the elements of an array [duplicate]反转数组的元素[重复]
【发布时间】:2017-07-31 18:48:33
【问题描述】:

这是我反转数组中元素的代码:

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for(int i=0; i < n; i++){
            arr[i] = in.nextInt(); 
        }
        int i=0;
        int j=n-1;
        int c;
        while(i<j){
            c=arr[i];
            arr[i]=arr[j];
            arr[j]=c;
            i++;
            j--;
        }
        System.out.println(arr[n]);
        in.close();
    }
}

问题是我的代码正在生成arrayIndexOutOfBound 异常。怎么去掉?

【问题讨论】:

标签: java arrays exception-handling reverse


【解决方案1】:

改变,

System.out.println(arr[n]);

到:

System.out.println(Arrays.toString(arr));

【讨论】:

    【解决方案2】:

    System.out.println(arr[n]); 这是问题所在,因为没有索引“n” n 是元素的数量 你必须从 0 循环到 n-1

        for(int i =0;i < n;i++){
    System.out.println(arr[i]);
    
    }
    

    【讨论】:

      【解决方案3】:

      您的代码可以很好地反转元素数组,但由于 System.out.println(arr[n]) 引发了 arrayIndexOutOfBound 异常。请记住数组索引从零开始。对于 n 大小的数组,范围将为 [0,(n-1)] 即,如果 n=5,范围将为 0 到 4。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-23
        • 2018-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多