0

ここで何が間違っているかを確認するために助けが必要です。手順は次のとおりです。

  1. getAnswer で StringTokenizer を使用します。
  2. それがMoreTokensを持っている間。
  3. 応答が nextToken と一致するかどうかを確認します。
  4. そうであれば真を返します。
  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これは、ループが終了した場合にのみ当てはまります。@ジャックの答えも参照してください。

于 2013-01-28T23:38:29.530 に答える