TLDR: java似乎只在方法运行时返回第一个值.我错了吗,还是有一种解决方法我不知道[不求助于循环]?
我的目标是从返回的最后一个值[boolean]输出分配给方法,但是如果没有正确理解返回的工作原理我就无法做到.
代码的目的是通过读取用户输入从简单的选择[Y/N]返回布尔值.如果给出了错误的输出[例如:"p","P","apples"],则该方法应该再次提示用户,直到给出正确的输入.
这就是我开始使用的:
private Boolean nrCheck()
{
Scanner sc = new Scanner (System.in);
Boolean isNewRelease;
System.out.println("New Release [Y/N]? ");
String movieType = sc.nextLine();
switch (movieType)
{
case "Y" : case "y" : isNewRelease = true; break;
case "N" : case "n" : isNewRelease = false; break;
default : /*Try again*/ nrCheck(); break;
}
return isNewRelease;
}
Run Code Online (Sandbox Code Playgroud)
显然这不起作用,因为默认情况下不分配值,导致初始化错误.
尝试通过分配默认值来解决此问题,如下所示:
private Boolean nrCheck()
{
Scanner sc = new Scanner (System.in);
Boolean isNewRelease;
System.out.println("New Release [Y/N]? "); …Run Code Online (Sandbox Code Playgroud) java recursion return-value boolean-expression switch-statement