【发布时间】:2017-09-25 15:08:29
【问题描述】:
我正在尝试制作一个在 1D 中执行元胞自动机的程序。为此,我需要从一行中读取三个变量。其中一个变量“L”决定了“currentGeneration”的数组长度。但是我得到 ArrayIndexOut... 错误。我认为这与我的数组的维度和变量 L 有关。
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];
}
}
【问题讨论】:
-
因为
values[i]只存在于i = 0,1(size =2) -
没有索引
2,你的数组有索引0和1。 -
看看你的命名:像 XLZG 这样的名字意味着 nothing。绝对没有充分的理由使用单个大写字符作为anything 的名称。因此:阅读 java 命名约定,并开始练习。
-
L 和 G 用于分配,X 和 Z 绝对是不必要的。感谢您的反馈。顺便说一句,也解决了。谢谢大家!