Java—循环直到输入Y或N的方法
我环顾四周,没有发现任何问题可以直接回答我的问题,如果我错了,对不起。我正在写一个程序,该程序应该接收你的出生信息,年、月、日、小时、分钟,然后询问他们是否愿意再次这样做,但使用方法和循环,直到输入Y/N 我的问题是我无法获得接受Y/N并结束程序的方法,也无法在输入N时结束 我认为应该有一段时间或某种循环需要在方法中,但我很难弄清楚这一点 我所有的其他方法都有效,除了这一个,任何帮助都将不胜感激,谢谢 这是我现在的方法代码:Java—循环直到输入Y或N的方法,java,loops,methods,return,Java,Loops,Methods,Return,我环顾四周,没有发现任何问题可以直接回答我的问题,如果我错了,对不起。我正在写一个程序,该程序应该接收你的出生信息,年、月、日、小时、分钟,然后询问他们是否愿意再次这样做,但使用方法和循环,直到输入Y/N 我的问题是我无法获得接受Y/N并结束程序的方法,也无法在输入N时结束 我认为应该有一段时间或某种循环需要在方法中,但我很难弄清楚这一点 我所有的其他方法都有效,除了这一个,任何帮助都将不胜感激,谢谢 这是我现在的方法代码: public static boolean getYNConfirm(
public static boolean getYNConfirm(Scanner pipe, String prompt)
{
String choice="";
System.out.println(prompt);
choice = pipe.nextLine();
if(choice.equalsIgnoreCase("Y"))
{
return true;
}
else
{
return false;
}
}
这是我的主程序的代码:
public static void main(String[] args)
{
int year, month, day, hour, minutes;
String msg="";
boolean done = false;
Scanner in = new Scanner(System.in);
while(!done)
{
year = SafeInput.getIntInRange(in, "Enter the year you were born: ", 1965, 2000);
month = SafeInput.getIntInRange(in, "Enter your month of birth: ", 1, 12);
switch (month)
{
case 1:
msg = "January";
break;
case 2:
msg = "February";
break;
case 3:
msg = "March";
break;
case 4:
msg = "April";
break;
case 5:
msg = "May";
break;
case 6:
msg = "June";
break;
case 7:
msg = "July";
break;
case 8:
msg = "August";
break;
case 9:
msg = "Septemeber";
break;
case 10:
msg = "October";
break;
case 11:
msg = "November";
break;
case 12:
msg = "December";
break;
}
hour = SafeInput.getIntInRange(in, "Enter the hour you were born in: ", 1, 24);
minutes = SafeInput.getIntInRange(in, "Enter the minutes you were born: ", 1, 59);
System.out.println("You were born: " + year + " , " + msg + " , " + hour + " hr. " + minutes + " mins. ");
SafeInput.getYNConfirm(in, "Would you like to play again?");
}
}
}
谢谢您的帮助。完成的
值始终为false
。最后一行的更改:
done = SafeInput.getYNConfirm(in, "Would you like to play again?");
编辑:
如果您返回true
也在此处更改,则您的逻辑不适用:
if(choice.equalsIgnoreCase("Y"))
{
return false;
}
else
{
return true;
}
您需要根据getYNConfirm方法的返回更改done base的值。所以最后一行应该是
done = SafeInput.getYNConfirm(in, "Would you like to play again?");
你怎么回事啊?“我的问题是我无法获得接受Y/N并结束程序的方法,也无法在输入N时结束。”这一点相当模糊。将最后一行更改为:done=SafeInput.getYNConfirm(在“您想再次播放吗?”)中)
,否则您将丢失值,done
保持为false。很抱歉,含糊不清,基本上当用户输入Y或N时,程序会自动循环,如果我输入N则不会停止。修复了它,谢谢大家@欢迎光临!如果它解决了你的问题,你可以接受它。