Java中的多维数组

问题描述:

基本上,用户必须指定他们想要的[n * n]多行和多列,然后用户将输入值并存储在多维数组中。我运行代码但出错Java中的多维数组

在线程 “主” java.lang.ArrayIndexOutOfBoundsException异常:1
在Total.main(Total.java:30)

代码:

import java.util.*; 

public class Total 
{ 
public static void main(String args[]) 
{ 
int n,value; 
Scanner input = new Scanner(System.in); 

System.out.println("Enter integer for row and column:"); 
n = input.nextInt(); 

int arrX[][] = new int [n][n]; 

for(int i=0; i < n; i++) 
{ 
    for(int j=0; j < n; i++) 
    { 
     System.out.printf("Enter integer [%d],[%d]:",i,j); 
     value = input.nextInt(); 
     arrX[i][j] = value; 
    } 
} 
    } 
} 
+0

在这样的例外情况下,您可以检查控制台输出并找出可能的错误。然后,很容易找到的错误,因为j是永远大于0 :) – smas

在行:

for(int j=0; j < n; i++) 

你增加i,它应该是j这样的:

for(int j=0; j < n; j++) 

在你的第二个循环中,您做的i++代替j++

改变这一行:

for(int j=0; j < n; **j**++) 

这是一个错字也许

您在递增两个循环i

import java.util.*; 

    public class Total 
    { 
    public static void main(String args[]) 
    { 
    int n,value; 
    Scanner input = new Scanner(System.in); 

    System.out.println("Enter integer for row and column:"); 
    n = input.nextInt(); 

    int arrX[][] = new int [n][n]; 

    for(int i=0; i < n; i++) 
    { 
     for(int j=0; j < n; j++) 
     { 
      System.out.printf("Enter integer [%d],[%d]:",i,j); 
      value = input.nextInt(); 
      arrX[i][j] = value; 
     } 
    } 
     } 
    } 

问题是你增加了错误的变量,第二次为:

for(int j=0; j < n; i++) 

而是我的,你必须键入j如果改变这种

工作正常。

干杯