这是我的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
答案 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();
}