如何填充方法public boolean checkAnswer(String response)?

时间:2013-01-28 23:33:21

标签: java oop boolean return

我需要帮助才能看到我在这里做错了什么。说明是:

  1. 在getAnswer上使用StringTokenizer;
  2. 虽然它有MoreTokens;
  3. 检查响应是否与nextToken匹配;
  4. 如果确实则返回true;
  5. 如果没有,则返回false。
  6. 这就是我编码的内容:

    public boolean checkAnswer{
     StringTokenizer str = new StringTokenizer(getAnswer());
        while (str.hasMoreTokens()){
            if(response.matches(str.nextToken())) return true;
        }
       return false;
    }
    

2 个答案:

答案 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的答案。