2017-09-25 3 views
-1

J'essaye de faire un programme qui fait des automates cellulaires dans 1D. Pour cela, j'ai besoin de lire trois variables à partir d'une seule ligne. l'une des variables, "L", détermine la longueur de tableau de "currentGeneration". Cependant, j'obtiens l'erreur ArrayIndexOut ... Je pense que cela a à voir avec la dimension de mon tableau et la variable L.Je ne comprends pas pourquoi je reçois une erreur 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

Parce que 'les valeurs [i]' existent seulement pour 'i = 0,1' (taille = 2) – nullpointer

+0

Il n'y a pas d'index' 2' , votre tableau a des index '0' et' 1'. – Berger

+0

Et regardez dans votre nom: des noms tels que XLZG signifie ** rien **. Il n'y a absolument aucune raison d'utiliser un seul caractère majuscule comme nom pour * n'importe quoi *. Ainsi: lisez à propos des conventions de nommage Java, et commencez à pratiquer cela. – GhostCat

Répondre

0

Vous avez essayé de valeurs d'accès [2] qui est faux, car l'indice de tableau commence à 0 pour un tableau de stockage 2 valeurs stockera les aux emplacements a [0] et a [1] si a est votre nom de tableau. Donc essayer d'accéder à un [2] donnera un index de tableau hors limites