我需要帮助才能看到我在这里做错了什么。说明是:
这就是我编码的内容:
public boolean checkAnswer{
StringTokenizer str = new StringTokenizer(getAnswer());
while (str.hasMoreTokens()){
if(response.matches(str.nextToken())) return true;
}
return false;
}
答案 0 :(得分:2)
您的代码将被解析为
public boolean checkAnswer {
StringTokenizer str = new StringTokenizer(getAnswer());
while (str.hasMoreTokens()) {
if(response.equals(str.nextToken())) return true;
}
if(!response.equals(str.nextToken()))return false;
}
根据您的规范,这不是您需要做的事情(并且可能不是您在编写时的意图)并且它既不会在每个分支上返回布尔值(因为如果分支是详尽的,Javac将不会查看对于非平凡的案件。
答案 1 :(得分:0)
如果所有令牌均不等于false
,您希望返回response
。当且仅当您的while
循环退出时才会出现这种情况。另见@ Jack的答案。