私の主な変数と同じように見えるnとmはメソッドの次元で変更できません。コンソールには、方法に問題があると表示されますこの行にを作成します[i] [j] = unos.nextInt();しかし、 私はこの行を変更した場合私用int [] [] a =新しいint [n] [m];と[3] [4]のような数字を入れて、プログラムは動作しますが、[n] [m]とは関係ありません。 CONSOLE:[1] [1] "メイン" java.lang.ArrayIndexOutOfBoundsExceptionスレッドの例外=:予め0 おかげで..2次元配列、メソッド、変数
import java.util.Scanner;
public class Matrica {
private int n, m;
private Scanner unos = new Scanner(System.in);
public void dimensions() {
System.out.print("n: ");
n = unos.nextInt();
System.out.print("m: ");
m = unos.nextInt();
}
private int[][] a = new int[n][m]; // if i put [2][2] or any other number, instead [n][n], program works
public void create() {
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
System.out.print("a[" + (i + 1) + "][" + (j + 1) + "]=");
a[i][j] = unos.nextInt(); // console points that this is the problem
}
}
public void print() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.printf("%d\t", a[i][j]);
}
System.out.println();
}
}
}
@Thrasherなぜこのすべての不要なスペースを追加するために編集しましたか?これは典型的なJavaスタイルではなく、奇妙に見えます。 – ajb
@Thrasher今後これを行うことはお勧めしません。あなたの個人的なスタイルはあなたのビジネスですが、Javaのスペーシングのためのかなり確立された標準があります(それらのすべてではありませんが、私はそれらと一緒に暮らしています)。読者数が多いサイトでは、 。 – ajb