Java,矩阵溢出

Java,矩阵溢出,java,arrays,matrix,int,overflow,Java,Arrays,Matrix,Int,Overflow,它不是出于某种原因编译的。我是java新手,我正在努力学习这一点。我不知道这个程序出了什么问题。至少有人能给我指出正确的方向吗 通信错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:3 在Matrix.main(Matrix.java:17) import java.util.Scanner; 公共类矩阵{ 公共静态void main(字符串[]args){ 扫描仪数据=新扫描仪(System.in); 最终整数w=3,k=2

它不是出于某种原因编译的。我是java新手,我正在努力学习这一点。我不知道这个程序出了什么问题。至少有人能给我指出正确的方向吗

通信错误:

线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:3

在Matrix.main(Matrix.java:17)

import java.util.Scanner;
公共类矩阵{
公共静态void main(字符串[]args){
扫描仪数据=新扫描仪(System.in);
最终整数w=3,k=2;
int[]x={//Tworzy表4x3(3x2,bo a1=[0,0])
{1,12,3},//x[0,0]=1x[0,1]=12x[0,2]=3
{45,4,1,0},//x[1,0]=45x[1,1]=4x[1,2]=1x[1,3]=0
{2,3}//x[2,0]=2x[2,1]=3
};
int[][]matX=newint[w][k];//制表符[w,k]

对于(int i=0;i您正在使用长度
w
作为
matX
的索引,该索引本身是无效的索引。更改

j<matX[w].length

j尝试在循环中使用
matX[i]
而不是
matX[w]
,以下是一些代码:

import java.util.Scanner;

public class Matrix { public static void main(String[] args) {

    Scanner data = new Scanner(System.in);
    final int w=3,k=2;
    int[][] x = {                           //Tworzy tablice 4x3 (3x2, bo a1=[0,0])
            {1,12,3},                       //x[0,0]=1  x[0,1]=12 x[0,2]= 3
            {45,4,1,0},                     //x[1,0]=45 x[1,1]=4  x[1,2]= 1  x[1,3]=0
            {2,3}                           //x[2,0]=2  x[2,1]=3
    };
    int[][] matX = new int[w][k];           //tab[w,k]

    for(int i=0 ; i<matX.length ; i++) {
        for(int j=0 ; j<matX[i].length ; j++) {
            matX[i][j] = data.nextInt();
        }
    }

    for(int i=0 ; i<matX.length ; i++) {
        for(int j=0 ; j<matX[i].length ; j++) {
            System.out.println(matX[i][j]);
            if(j==matX[i].length-1) {
                System.out.println(System.lineSeparator());
            }
        }
    }
    data.close();
}
import java.util.Scanner;
公共类矩阵{public static void main(字符串[]args){
扫描仪数据=新扫描仪(System.in);
最终整数w=3,k=2;
int[]x={//Tworzy表4x3(3x2,bo a1=[0,0])
{1,12,3},//x[0,0]=1x[0,1]=12x[0,2]=3
{45,4,1,0},//x[1,0]=45x[1,1]=4x[1,2]=1x[1,3]=0
{2,3}//x[2,0]=2x[2,1]=3
};
int[][]matX=newint[w][k];//制表符[w,k]

对于(int i=0;它无处不在。它就在我们身边。即使现在,在这篇文章中。当你打开电脑并登录Stackoverflow时,你可以看到它。当你上学时,当你去做作业时,你可以感觉到它。是这个世界蒙住了你的眼睛,让你看不到真相。你是一个奴隶的真相etzo.和其他人一样,你生来就是被束缚的。被囚禁在一个你尝不到、看不见、摸不着的监狱里。被囚禁在你思想的监狱里。这就是你的程序出了什么问题。那就是,还有杰特曼发布的。
j<matX[i].length
import java.util.Scanner;

public class Matrix { public static void main(String[] args) {

    Scanner data = new Scanner(System.in);
    final int w=3,k=2;
    int[][] x = {                           //Tworzy tablice 4x3 (3x2, bo a1=[0,0])
            {1,12,3},                       //x[0,0]=1  x[0,1]=12 x[0,2]= 3
            {45,4,1,0},                     //x[1,0]=45 x[1,1]=4  x[1,2]= 1  x[1,3]=0
            {2,3}                           //x[2,0]=2  x[2,1]=3
    };
    int[][] matX = new int[w][k];           //tab[w,k]

    for(int i=0 ; i<matX.length ; i++) {
        for(int j=0 ; j<matX[i].length ; j++) {
            matX[i][j] = data.nextInt();
        }
    }

    for(int i=0 ; i<matX.length ; i++) {
        for(int j=0 ; j<matX[i].length ; j++) {
            System.out.println(matX[i][j]);
            if(j==matX[i].length-1) {
                System.out.println(System.lineSeparator());
            }
        }
    }
    data.close();
}