gpt4 book ai didi

java - Do-while 语句 Java

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:08:04 26 4
gpt4 key购买 nike

我是编程新手。我很难理解这段代码:

public static boolean onCampus(String name)
{
boolean invalidResponse = true;
do{
System.out.println("Is "+name+ " living on campus? (yes/no)");
String response = in.nextLine();
if(response.equalsIgnoreCase("yes"))
return true;
else if (response.equalsIgnoreCase("no"))
return false;
else
System.out.println("Invalid response.");
} while(invalidResponse);
return false;
}

我不明白的是,在用户输入可接受的响应的情况下,invalidResponse 在哪里被赋值为 false?最后一个 return false; 是什么?为什么它在 do-while 语句之后?

最佳答案

这有点反模式 - 循环是无限的,永远不会“正常”终止。相反,一旦您获得有效响应,您只需调用 return,然后退出该方法,从而终止循环。

循环后的return false是一个编译限制。在 java 中,如果方法返回一个值,每个可以想到的分支都必须包含一个 return 语句(或者准确地说是一个 throw 语句)。在编译时,Java 不会“知道”循环可能永远不会终止,因此它会强制您在该分支中有一个 return 语句(即,假设循环终止时没有 ifelse if 正在执行的分支)。

关于java - Do-while 语句 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33090969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com