**没有按预期工作,我不知道出了什么问题。
我对数组索引使用整数变量 在方法中i确定变量**的值
import java.util.Scanner;
公共课测试{
static Scanner key = new Scanner (System.in);
static int count = 0;
static int nameNum;
static String[] name = new String [nameNum];
public static void main (String [] args){
readNameNum();
readName();
showNameList();
}
public static int readNameNum (){
System.out.println("Enter number of names");
System.out.print("> ");
nameNum = key.nextInt();
return nameNum;
}
public static void readName (){
System.out.println("Enter "+nameNum+" names");
for (int i = 0; i < nameNum; i++){
count++;
System.out.print("N"+count+": ");
name [i] = key.next();
}
}
public static void showNameList (){
for (int i = 0; i < name.length; i++){
System.out.println(name [i]);
}
}
}
答案 0 :(得分:0)
尝试在使用之前初始化此nameNum
变量:
static int nameNum= 20;// ex 20
或者如果你想我建议使用这样的东西:
static String[] name = null;
public static void main (String [] args){
name = new String [readNameNum()];
readName();
showNameList();
}
答案 1 :(得分:0)
在知道它应该有多少元素之前,先创建String数组。
static int nameNum; // == 0
static String[] name = new String [nameNum]; // doesn't magically change size.
nameNum = key.nextInt(); // doesn't change the `name`
我建议您只有在知道它应该是什么尺寸后才能创建数组,即在您阅读之后。
在修复此错误之前,您应该在调试器中逐步执行程序以确认这是问题所在。