-1

ここに私の World.java のコードがあります

    while (option == 1)
    {
        a.generate();
        a.count();
        System.out.println("Max number is "+ a.maximum(max));
        System.out.println("Average number is "+ a.average(aver));
        System.out.println("Min number is "+ a.minimum(min));
        System.out.println("Do you want to run it again (y/n)?: ");
        a.getchoice();
    } 
    if (option == 2)
    {
        System.out.println("Program exits.");
        System.exit(0);
    }

そして、ここに私のrg.javaのコードがあります

    public int getchoice() {
            Scanner reader = new Scanner(System.in);
            String selection = reader.nextLine();
            if(!selection.toLowerCase().equals("y") && !selection.toLowerCase().equals("n"))
            {
                System.out.print("Invalid. Please enter “y” or “n”: ");
                return this.getchoice();
            }
            if (selection.toLowerCase().equals("y")){
                return 1;
            }
            else
            {
                return 2;
            }

変数を返して、ワールド クラスでオプション y/n を実行したいと考えています。

しかし、問題は、プログラムの実行後に y を押すと、何か問題が発生したことです。y を押すか、オプションが 1 であるかのようにプログラムがまだ実行されます。

私のコードのどの部分が間違っているかを誰かが確認できますか? Javaを学び始めたばかりなので、このnewbコードについて申し訳ありません

4

2 に答える 2

3

あなたは決して設定しませんoption

これを試して:

  option = a.getChoice();
于 2013-05-03T15:19:30.497 に答える
2

getChoice()メソッドの結果をvariableでキャッチしませんoption。したがって、whileループは決して終了しません。

への変更

while (option == 1)
{
    a.generate();
    a.count();
    System.out.println("Max number is "+ a.maximum(max));
    System.out.println("Average number is "+ a.average(aver));
    System.out.println("Min number is "+ a.minimum(min));
    System.out.println("Do you want to run it again (y/n)?: ");
    option = a.getchoice();
} 
于 2013-05-03T15:20:58.413 に答える