我创建了一个全局数组:
static String[][] pauta;
然后,我创建了这个接收用户输入的方法,这些输入将设置数组的大小:
public static void definirTamanhoPauta() {
int nAlunos, nTestes;
nAlunos = teclado.nextInt();
nTestes = teclado.nextInt();
pauta = new String[nAlunos][nTestes];
}
(假设用户想要创建一个2x2数组,因此变量nAlunos和nTestes的值都将为2)
然后我有另一个代码,打算再次使用用户定义的值填充数组第1列的所有行:
public static void definirNumeroAlunos() {
for (int i = 0; i < pauta.length; i++) {
System.out.print("pauta[" + i + "][0] = ");
pauta[i][0] = teclado.nextLine();
System.out.println();
}
}
除非我让用户定义数组的大小,否则循环不会询问pauta [0] [0]的值,只会询问pauta的值[1] [0]
输出:
pauta[0][0] = // skipped
pauta[1][0] = // only there it asks for user input
但是,如果我像这样设置数组:
static String[][] pauta = new String[2][2]
不要调用definirTamanhoPauta()
方法,definirNumeroAlunos()
的输出就是这样:
pauta[0][0] = // doesn't skip this anymore
pauta[1][0] = // asks for user input here, too
那里发生了什么?我真的无法理解。