2012-06-11 122 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')这将使你的循环条件成立并执行循环内的代码。第二个条件甚至没有评估。