我该如何修复此代码?我对数组索引使用整数变量

时间:2016-02-09 00:00:04

标签: java arrays methods

**没有按预期工作,我不知道出了什么问题。

我对数组索引使用整数变量 在方法中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]);
    }
}

}

2 个答案:

答案 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`

我建议您只有在知道它应该是什么尺寸后才能创建数组,即在您阅读之后。

在修复此错误之前,您应该在调试器中逐步执行程序以确认这是问题所在。