2012-06-11 200 views
2

我想在用戶輸入'N'或'n'時退出while循環。但它不起作用。它適用於一種情況,但不是兩種。WHILE循環中的多個條件

import java.util.Scanner; 

class Realtor { 

    public static void main (String args[]){ 

     Scanner sc = new Scanner(System.in); 

     char myChar = 'i'; 

     while(myChar != 'n' || myChar != 'N'){ 

      System.out.println("Do you want see houses today?"); 
      String input = sc.next(); 
      myChar = input.charAt(0); 
      System.out.println("You entered "+myChar); 
     } 
    } 
} 

回答

17

您需要更改||&&,使兩個條件必須爲真,進入循環。

while(myChar != 'n' && myChar != 'N') 
+3

您還應該將其更改爲do-while循環,以便您不必隨機初始化myChar。 – LINEMAN78

+0

是的,應該肯定是做的吧 –

+4

你也可以做Character.toLowerCase(myChar)!='n'使它更具可讀性。 – LINEMAN78

1

你的條件是錯誤的。 myChar != 'n' || myChar != 'N'將始終爲真。

使用myChar != 'n' && myChar != 'N'代替

0

如果你的代碼,如果用戶輸入「X」(例如),當你到達,同時條件評價其將確定「X」是differente從「N」(的nChar! ='n')這將使你的循環條件成立並執行循環內的代碼。第二個條件甚至沒有評估。