2017-06-22 4 views
-5

whileループから抜け出せません。私のコードで何が間違っていますか? すべてが論理的に私には正しいよう:Java - ループを中断できません。

(ない 'S' か 'P')間 ---プリントライン:--- ReadInputを を "再入力":

while (!answerInput.equals("s") || !answerInput.equals("p")) 
{ 
    System.out.print("Wrong Input. Type S for Sum or P for Product: "); 
    answerInput = userInput.next(); 
    answerInput = answerInput.toLowerCase();  
} 

お知らせください。平易な英語で

+0

。しかし、どのように*( ''ではなく、 ''ではない)*は意味をなさない? – shmosel

答えて

4

、あなたのコードが言っている:

「answerInput」は「S」以外の場合は、または「answerInput」は「P」以外のもので、この式が真です。

この文を偽にすることはできません。それは明らかに「p」ではなく「p」でもない。同時に2つの値にすることはできません。 2つの不等式のうちの1つは常に真であり、式全体も常に真である。

何を言ってすべきことである。

「answerInput」は「S」以外の何か、「answerInput」も「P」以外のものであるされている場合は、この式が真です。

、Javaで、次式で表されます。あなたはあなたのミスが理解できるだろう* *(ない 'S' や 'P')しながら言っただろう場合は

while (!answerInput.equals("s") && !answerInput.equals("p")) 
+1

ありがとうGovind。それはすべてが私の論理でとても良いとは思わない。 true/falseの可能な組み合わせをすべて描いて、どこが間違っているかを確認しなければなりませんでした。私は今それが私の頭の中にくっつくことを望む。 –

関連する問題