2

嗨,伙计们,一个快速的问题。我在下面创建一个 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

4 回答 4

1

根据您的逻辑,似乎 HashMap 适合此。

HashMap<String,Integer>

您的键是名称,值是分数。您可以将其定义为类变量并在 if else if 情况下使用。

于 2012-12-07T17:59:45.167 回答
0

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

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

于 2012-12-07T17:54:25.283 回答
0

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

于 2012-12-07T17:51:34.263 回答
0

在块外部声明该数组if并在需要时对其进行初始化。

于 2012-12-07T17:52:44.317 回答