【问题标题】:why i got index out of bound exeption:invalid array range 0 to 0?为什么我的索引超出范围异常:无效的数组范围 0 到 0?
【发布时间】:2017-08-10 09:57:06
【问题描述】:
public static void main(String[] args){
     Random ran = new Random();
     int nums[][];
     nums = new int[3][5];

     for(int i=0;i<3;i++)
         for(int j=0;j<5;j++){
             nums=new int[i][j];
             nums[i][j]=1+ran.nextInt(90);
     }
}

【问题讨论】:

    标签: arrays indexoutofboundsexception


    【解决方案1】:
    nums=new int[i][j]
    

    在这里,您正在创建一个长度为 i 和 y 的数组 下一行nums=new int[i][j] 您正在尝试访问最后一个索引,但索引从索引 0 开始到长度 -1 您应该使用 nums=new int[i-1][j-1] 来获取最后一个索引

    【讨论】:

      【解决方案2】:

      在循环的第一次迭代中,您调用该行:nums = new int[i][j],但 i 和 j 为 0。所以本质上您调用的是 nums = new int[0][0],这不是一个有效的语句。

      我认为您的意思是分配一次数组(在第 4 行的双循环之外),并且只在循环中分配值。尝试删除nums = new int[i][j] 行,看看这是否是您所期望的。我不明白您要通过此声明实现的目标。

      【讨论】:

      • 请不要发布“谢谢”cmets。标记对您有效的解决方案的正确方法是接受答案。您也可以投票赞成所有您认为有帮助的答案。这有助于未来的读者解决类似问题。
      猜你喜欢
      • 2015-02-11
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      相关资源
      最近更新 更多