Java 如何填写方法public boolean checkAnswer(字符串响应)?
我需要帮助,看看我做错了什么。说明如下:Java 如何填写方法public boolean checkAnswer(字符串响应)?,java,oop,boolean,return,Java,Oop,Boolean,Return,我需要帮助,看看我做错了什么。说明如下: 在getAnswer上使用StringTokenizer 虽然它有更多的代币 检查响应是否与下一步匹配 如果返回true,则返回true 如果没有,则返回false 这就是我的代码: public boolean checkAnswer{ StringTokenizer str = new StringTokenizer(getAnswer()); while (str.hasMoreTokens()){ if(response
public boolean checkAnswer{
StringTokenizer str = new StringTokenizer(getAnswer());
while (str.hasMoreTokens()){
if(response.matches(str.nextToken())) return true;
}
return false;
}
您的代码将被解析为
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不会检查分支对于非平凡的情况是否是穷举的。如果所有标记都不等于
响应
,则要返回false
。当且仅当while
循环退出时,才会出现这种情况。另请参见@Jack的答案。只是为了弄清楚这一点。我所做的与在e说明?是的,因为如果令牌匹配,您将返回true,如果令牌不匹配,您将返回false。请参阅Emil Lundberg答案,当所有令牌与您的答案不匹配时,您应该返回false。检查单个令牌时,您永远不应返回false。我已编辑了我认为您正试图告诉我的内容。您是否可以通知我我仍然不正确?如果(!response.equals(str.nextToken())返回false;
您在while循环中不需要这个。您只需要在while循环完成后返回false;。