入力用に与えた行と列の数に応じてパターンを出力する配列を作成しようとしています.3番目のメソッドに到達するとエラーが発生します。私は、配列がインデックス0で始まると理解しています。マトリックスの入力(0 0)には範囲外ですが、問題の修正方法はわかりません。お手伝いありがとう!ArrayIndexOutOfBoundsExceptionを取得し続ける
import java.util.*;
public class TestTranspose extends Transpose {
public static void main(String[] args)
{
Scanner scan = new Scanner (System.in);
int rows = scan.nextInt();
int cols = scan.nextInt();
int [][] table = createPatterned2DArray(rows,cols);
print2DArray(table);
System.out.println();
print2DArrayTransposed(table);
System.out.println();
}
}
これは私が取得していますエラーがあり、そのは私が非常識な運転:
public class Transpose {
public static int [][] createPatterned2DArray(int rows, int cols)
{
int [][] table = new int [rows] [cols];
for (int numRows = 0; numRows < table.length; numRows++){
for (int numCols = 0; numCols < table[0].length; numCols++){
table [numRows][numCols] = 10 + rows*(numRows +1) + numCols;
}
}
return table;
}
public static void print2DArray (int[][] matrix)
{
for (int row = 0; row < matrix.length; row++)
{
for (int col = 0; col < matrix[0].length; col++)
{
System.out.printf("%-4d",matrix[row][col]);
}
System.out.println();
}
}
public static void print2DArrayTransposed(int [][] matrix)
{
for (int row = 0; row < matrix[0].length; row++)
{
for (int col = 0; col < matrix.length; col++)
{
//try {
// if (matrix[0] == 0) {
// System.out.println(matrix[0][0]);
// throw new Exception();
System.out.printf("%-4d",matrix [col][row]);
// }
//catch (Exception e){
// System.out.print(e);
}
System.out.println();
}
}
}
ここ番目のクラスです:
は、ここで最初のクラスのために私のコードです! 私は、例外をスローする方法や、配列の入力を(0 0)と入力しても出力を何も表示させないように頭を抱えているように見えません。どのように私は(0 0)の配列を出力させないこのコード行を修正できますか?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Transpose.print2DArrayTransposed(Transpose.java:32)
at TestTranspose.main(TestTranspose.java:13)
ありがとうございました!私はそれのラインに沿って何かを持っていたが、私は私の人生のためにそれを把握することができます:) – pitonface69