0

コードに問題があります。コードを実行すると、Eclipse から、arrayoutofboundexception エラーがあることが通知されました。しかし、自分のコードでこれをどのように解決できるかはよくわかりません。配列の範囲外の例外エラーに関連するいくつかの質問を読みましたが、コードに適用できませんでした。これが問題に関連する私のコードです。ありがとうございました。あなたの助けに感謝。

   char[][] cells;
  int column = 300; 
  int row = 200;
   cells= this.getCells();
   ...
   if(cells[row][column] == '2'){  // error
                // eat the pill
                cells[row][column] = '1';
            }
            else if(cells[row][column] == '3'){
                // eat the power pill
                cells[row][column] = '1';
            }


....

for (int r=0; r<rows; r++) {
            for (int c=0; c<columns; c++) {
                **if (cells[r][c] == '2')** { // error
                    //draw pill
                    g.fillRect(c*STEP-3, r*STEP-3, 6, 6);


                }
                else if (cells[r][c] == '3'){
                    //draw power pill
                    g.fillRect(c*STEP-6, r*STEP-6, 12, 12);

                }
            }
        }


public char[][] getCells()
    {
        char[][] cells = new char[rows][columns];
        for (int  r =0; r < rows; r++){
            System.arraycopy(lines.get(r).toCharArray(), 0, cells[r], 0, columns);
4

1 に答える 1

0

配列の範囲外の配列のインデックスにアクセスしようとしていますcells

初期化後

cells= this.getCells();

[200][300]配列の次元を確認してください。問題の原因となっているアクセスしようとしています

于 2012-11-27T01:42:09.453 に答える