Java ArrayIndexOutofBounds,救命?
问题出在Java ArrayIndexOutofBounds,救命?,java,Java,问题出在int[][]tam=newint[a][b]。只是那条线。我是java新手,来自C++背景。 //"Exercitiul" 3 Scanner input = new Scanner(System.in);//instructiune scanner DataInputStream dis4 = new DataInputStream(System.in); DataInputStream dis5 = new DataInputStream(System.in); String st
int[][]tam=newint[a][b]
。只是那条线。我是java新手,来自C++背景。
//"Exercitiul" 3
Scanner input = new Scanner(System.in);//instructiune scanner
DataInputStream dis4 = new DataInputStream(System.in);
DataInputStream dis5 = new DataInputStream(System.in);
String st1 = null;
String st2 = null;
try{
System.out.println("Introduceti numarul de Randuri");
st1 = dis4.readLine();
System.out.println("Introduceti numarul de Coloane");
st2 = dis5.readLine();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
int a = Integer.parseInt(st1);
int b = Integer.parseInt(st2);
int [][]tam = new int[a][b];
System.out.println("Verificare " + tam[a][b]);
System.out.println("Introduceti Elementele Matricei ");
for (int m=0 ; m < tam.length ; m++)
for (int n=0 ; n < tam[i].length ; n++){
tam[m][n] = input.nextInt();//instructiune scanner
}
System.out.println("Matricea A: ");
for (int m=0 ; m < tam.length ; m++)
{ System.out.println();
for (int n=0 ; n < tam[i].length ; n++)
System.out.print(tam[m][n]+" ");
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Program.main(Program.java:95)
/“Exercitiul”3
扫描仪输入=新扫描仪(System.in)//指示扫描仪
DataInputStream dis4=新的DataInputStream(System.in);
DataInputStream dis5=新的DataInputStream(System.in);
字符串st1=null;
字符串st2=null;
试一试{
System.out.println(“引见numarul de Randuri”);
st1=dis4.readLine();
System.out.println(“路环线介绍”);
st2=dis5.readLine();
}
捕获(ioe异常ioe){
ioe.printStackTrace();
}
inta=Integer.parseInt(st1);
intb=Integer.parseInt(st2);
int[]tam=新int[a][b];
System.out.println(“验证关怀”+tam[a][b]);
System.out.println(“简介元素矩阵”);
对于(int m=0;m
如果该行引发异常,则可能意味着a或b是如果该行引发异常,则可能意味着a或b是如果数组a
具有长度n
,则元素是a[0]
到a[n-1]
。
在您的例子中,您将tam
分配为int[a][b]
,矩阵的右下角元素是tam[a-1][b-1]
另外,我认为您希望
m
作为(int n=0;n的索引,而不是I
如果数组a
具有长度n
,则元素是a[0]
到a[n-1]
。
在您的例子中,您将tam
分配为int[a][b]
,矩阵的右下角元素是tam[a-1][b-1]
此外,我认为您希望m
作为(int n=0;n中的索引,而不是I
,我认为问题相当严重
System.out.println("Verificare " + tam[a][b]);
tam初始化为new int[a][b]
。这意味着它的第一个索引从0到a-1,第二个索引从0到b-1。在Java中,数组索引从0开始。因此,tam[a][b]
确实是超出了范围。我认为问题相当严重
System.out.println("Verificare " + tam[a][b]);
tam初始化为new int[a][b]
。这意味着它的第一个索引从0到a-1,第二个索引从0到b-1。在Java中,数组索引从0开始。因此,tam[a][b]
确实超出了范围。i变量来自哪里?在使用它的两个地方不应该有m吗?i变量来自哪里?在使用它的两个地方不应该有m吗?我给它的输入大于0,我给它的输入大于0,即使我删除了那行,同样的事情也会发生,因为以后还有其他错误。异常发生的那一行告诉您错误在哪里,Vlad的答案也是如此。即使我删除了那一行,同样的事情也会发生,因为您以后还有其他错误。异常发生的那一行告诉您错误在哪里,Vlad的答案也是如此。