0
         for (int y = 0; y < stuff.length(); y++)
        {
            String n = wordTemp[y];
            String m = complete [y];
            System.out.println(n + m);
            if (n.equals(m));
            {
                fin = fin + 1;
            }
        }

        if (fin == stuff.length())
        {
            System.out.println("COMPLETED!  Play again later.");
            return;
        }

これは、ハングマンのメイン メソッドの最後の部分です。現在、2 つのアレイを実行しています。1 つ目は complete[] で、文字単位の部分文字列に切り刻まれた入力単語が含まれています。私が持っている2番目の配列は、「推測された」単語配列です。たとえば、単語が魚の場合、f を推測した場合、complete[] には [f,i,s,h} が含まれ、wordTemp には [f,-,-,-] が含まれます。

しかし、これら 2 つの配列の要素を比較して、ユーザーがチャレンジを完了したかどうかを確認しようとすると、Java からすぐに飛び出します。最終的には次のようになります。

最初の推測を行った後、すべてがスキップされます。.equals が機能していないと思われますが、それを置き換えるにはどうすればよいですか?

4

1 に答える 1

9
 if (n.equals(m));

する必要があります

 if (n.equals(m))

セミコロンを削除します。

if (n.equals(m)) {これは、自動フォーマット IDE が優れている理由の 1 つであり、個人的には、同じ行に開き括弧があるエジプト式の括弧が好きな理由の 1 つでもあります。このような些細なことで、余分なセミコロンなどの構文の問題がより明白になります。

于 2013-02-06T23:41:32.027 に答える