2017-09-25 4 views
-1

私は1Dでセルオートマトンを実行するプログラムを作ろうとしています。そのためには、私は1つの行から3つの変数を読み込む必要があります。変数「L」の1つは、「currentGeneration」の配列長を決定します。しかし、私はArrayIndexOut ...エラーを取得します。私は、これは私の配列の次元に関係していると思いますし、変数L.私はなぜArrayIndexOutOfBoundsException 2エラーが発生するのかわかりません

public class Cellulitissss { 
    int L; 
    Scanner sc = new Scanner(System.in); 
    Boolean[] currentGeneration; 
    String automaton; 
    int G; 
    String X; 
    String Z; 

    public void readGeneral() { 

     String[] values = new String[2]; 
     for (int i = 0; i < 3; i++) { 
      values[i] = sc.next(); 
     } 
     automaton = values[0]; 
     X = values[1]; 
     Z = values[2]; 
     L = Integer.parseInt(X); 
     G = Integer.parseInt(Z); 
     currentGeneration = new Boolean[L + 1]; 
    } 
} 
+1

'values [i]'は 'i = 0,1'(size = 2)に対してのみ存在するためです。 – nullpointer

+0

インデックス '2'あなたの配列は '0'と' 1'のインデックスを持っています。 – Berger

+0

あなたの名前を調べてみましょう:XLZG mean ** nothing **のような名前。単一の大文字を* anything *の名前として使用する正当な理由は全くありません。したがって:Javaの命名規則について読んで、それを練習してください。 – GhostCat

答えて

0

あなたがアクセス値にしようとした配列のインデックスは0から始まるので、[2]間違っているので、2つの値を格納する配列が格納されますaが配列名の場合はa [0]とa [1]の位置にあります。したがって、[2]にアクセスしようとすると、範囲外の配列インデックスが返されます

関連する問題