如何引用范围/菜单之外的数组?

时间:2012-12-07 17:49:49

标签: java arrays if-statement scope

大家好快问一下。我在下面创建一个Java菜单是代码的一个示例。我想知道我是否在“if”语句中设置2个数组如何再次引用这些数组。我知道,由于范围的原因,数组在移出if语句时会被销毁。如果选择了选项P,我想再次引用数组。

public static void determineOption (char option) {

        if (option == 'A') {

        int class_number = Console.getInt("Enter how many students between 1-10");

        while (class_number < 1 || class_number > 10)
        class_number = Console.getInt("Enter how many students between 1-10");

        System.out.println("");


        String[] name = new String[class_number];
        int[] score = new int[name.length];

        for (int i=0; i<class_number; i=i+1) 
        {
            name[i] = Console.getString("Enter Name");
            score[i] = Console.getInt("Enter score");
        }

        }
        else if (option == 'P') {


        }

4 个答案:

答案 0 :(得分:1)

根据你的逻辑,似乎HashMap适合这个。

HashMap<String,Integer>

您的密钥是名称,价值是分数。您可以将其定义为类变量,并在if else if case中使用。

答案 1 :(得分:0)

将声明放在范围的较高位置,如果有必要,可能在课堂上。换句话说,将数组从方法本地变量更改为类上的变量。

答案 2 :(得分:0)

if块之外声明该数组,并在需要时初始化它。

答案 3 :(得分:0)

这都是范围问题。在if语句之外声明数组,将其置于方法本身的范围内,这样您就可以在方法中使用它(从声明行到方法结尾)。如果你需要在各种方法中使用数组,你可能需要通过使它成为一个类字段来保持该数组更长一点。

请注意,如果数组的初始化取决于不同的条件,则在使用之前必须进行检查,因为它可能在任何时候都尚未初始化。