2015-10-29 20 views
2

這裏是我的代碼,我知道if語句很長,代碼可能會更有效率,但我只是想知道這個答案,因爲它會讓我瘋狂。爲什麼`if(guess!='a'|| guess!='A'|| ...)`不起作用?

while (whileloop == 1) 
    { 
    if (guess != 'a' || guess != 'A' || guess != 'b' || guess != 'B' || guess != 'c' || guess != 'C' || guess != 'd' || guess != 'D' || guess != 'e' || guess != 'E' || guess != 'f' || guess != 'F' || guess != 'g' || guess != 'G' || guess != 'h' || guess != 'H' || guess != 'i' || guess != 'I' || guess != 'j' || guess != 'J' || guess != 'k' || guess != 'K' || guess != 'l' || guess != 'L' || guess != 'm' || guess != 'M' || guess != 'n' || guess != 'N' || guess != 'o' || guess != 'O' ||guess != 'p' || guess != 'P' || guess != 'q' || guess != 'Q' || guess != 'r' || guess != 'R' || guess != 's' || guess != 'S' || guess != 't' || guess != 'T' || guess == ' ') 
    { 
     System.out.println ("\nNot a Point. Try again."); 
     guess = IBIO.inputChar ("If the missile is launched from Point B, which Point will the missile hit? "); 
    } 
    else 
     whileloop = 2; 
    } 
+0

預期行爲是什麼? –

+2

你應該仔細研究一下使用正則表達式來簡化你的代碼。這是不可讀或不可維護的。 –

回答

8

因爲你想要一個合乎邏輯的和&&(不是邏輯或||)。如果任何條件爲true(例如字母A不是字母B,整個表達式爲真),則使用||。你可以使用帶有兩個ands的||。類似於

if (!(guess >= 'a' && guess <= 'z') || !(guess >= 'A' && guess <= 'Z')) 
+0

謝謝,這真的有幫助!天哪,我當時很蠢 –

+4

@HrithikShah如果你認爲這是正確的,請接受Elliott的回答:-) –

相關問題