程序保持循环

时间:2013-05-03 15:18:04

标签: java

这是我的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还是n,程序仍然执行,就像选项为1一样。

任何人都可以查看我的代码中哪些部分被冤枉?抱歉这个新代码,因为我刚开始学习java

2 个答案:

答案 0 :(得分:3)

您从未设置option

试试这个:

  option = a.getChoice();

答案 1 :(得分:2)

您没有在变量getChoice()中捕获方法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();
}