0

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

  1. 在 getAnswer 上使用 StringTokenizer ;
  2. 虽然它有MoreTokens;
  3. 检查响应是否与 nextToken 匹配;
  4. 如果是,则返回 true ;
  5. 如果没有,则返回 false。

这是我编码的:

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

2 回答 2

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 不会查看分支是否详尽无遗案例。

于 2013-01-28T23:35:41.140 回答
0

false如果没有任何标记等于,您想返回response。当且仅当您的while循环退出时才会出现这种情况。另请参阅@Jack 的回答。

于 2013-01-28T23:38:29.530 回答