-1

ユーザーが Y または N で始まる単語を入力するまで反復を続ける do ループを作成しました。最初はcharのプリミティブ チェックを使用し、現在は以下に概説するメソッドを使用して文字列が等しいかどうかをチェックしています。どちらの比較メディアでも、'y' または 'n' を入力してもループが終了しないことがわかりました。理由は説明できませんが、次のことができることを願っています。

コードは次のとおりです。

            do{
            System.out.println("Please Enter a Valid y/n Reply:");
            eraseOr_no = histScanner.next();
            if(histScanner.hasNext()){
                (eraseOr_no.replaceAll("\\s+", "")).toLowerCase();
                character = Character.toString(eraseOr_no.charAt(0));

                //DEBUGGING
                System.out.println("CHECKPOINT 5" + "----" + character);
                //DEBUGGING

            }
        }while(!(character.equals("n")) || !(character.equals("y")));

明らかなように、単純なシステムを使用して文字列 文字の値を通知しました。ご覧のとおり、「y」または「n」が正常に表示されており、最初の文字の取得コードが機能していますが、do 構造全体はそうではありません。

Continue
Answer:

CHECKPOINT 4.0.
PLACEHOLDER

Please Enter a Valid y/n Reply:
y
y
CHECKPOINT 5----y
Please Enter a Valid y/n Reply:
y
CHECKPOINT 5----y
Please Enter a Valid y/n Reply:
n
CHECKPOINT 5----y
Please Enter a Valid y/n Reply:
y
CHECKPOINT 5----n
Please Enter a Valid y/n Reply:

すべての空白を削除しようとする必要がありますか? もっと基本的なものが欠けていますか?

4

2 に答える 2

2

あなたが言っている:

while (文字はありません n)または(文字はありません y)

これらの条件の少なくとも 1 つが常に真になります。そうである場合はそうでnはなくy、そうでない場合はそうではありyませんn(どちらでもない場合は、両方の条件が満たされます)。

あなたはおそらく欲しい:

while (!(character.equals("n") || character.equals("y")))
于 2013-09-09T21:45:51.057 に答える
1

あなたの状態は間違っています。次のいずれかです。

while(!(character.equals("n")) && !(character.equals("y"))); // A

また、

while(!(character.equals("n") || character.equals("y"))); // B

つまり、これは次のいずれかです。

(ではない"n") および (ではない"y")         //A

また:

どちら"n"でもない"y"        //B

于 2013-09-09T21:44:55.167 に答える