2015-10-29 21 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的回答:-) –

相关问题