0

アイテム (各アイテムには空腹を満たすのに役立つ値があります) をコンソールに数字で一覧表示したいので、ユーザーはこのアイテムの数字を入力してアイテムを選択できます。

  1. ホットドッグ3
  2. カップケーキ 2

すべての食品と値の HashMap を持つクラス Food を作成しました。他のクラス (OhterClass) では、アイテムと値を一覧表示し、ユーザー入力を処理したいと考えています。私の目標は、選択した項目の値を読み取り、それをデータフィールドに追加することです: 空腹.

このようにすると、OtherClass で foreach を作成し、各項目と vlue をインデックスで読み取る必要があります。また、ユーザー入力を switch ケースでチェックする必要がありますが、この解決策はあまり良くないと思います。しかし、どうすれば別の方法で解決できるかわかりません。

誰かに私に提案がある人はいますか?

4

2 に答える 2

0

これを試すことができます:

public class Hunger {

    public static void main(String[] args) {
        for (Food food : Food.values()) {
            System.out.printf("%d   %-8s %d\n", food.ordinal(), food.caption, food.sustenance);
        }
        System.out.print("Hungry? Make your choice: ");
        Scanner scanner = new Scanner(System.in);
        Food food;
        while (true) {
            try {
                food = Food.values()[scanner.nextInt() - 1];
                break;
            } catch (Exception e) {
                System.out.println("Naa ... choose again: ");
            }
        }
        System.out.printf("This %s was yummy!\n", food.caption);
    }
}

enum Food {

    HOT_DOG("Hot Dog", 3),

    CUP_CAKE("Cup Cake", 2);

    final String caption;
    final int sustenance;

    private Food(String caption, int sustenance) {
        this.caption = caption;
        this.sustenance = sustenance;
    }
}
于 2014-03-26T09:26:13.117 に答える