Java WHILE循环中的多个条件
当用户输入'N'或'N'时,我想退出while循环。但它不起作用。它在一个条件下工作良好,但不是两个条件Java WHILE循环中的多个条件,java,while-loop,Java,While Loop,当用户输入'N'或'N'时,我想退出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' || my
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);
}
}
}
您需要将
|
更改为&&
,以便这两个条件都必须为真才能进入循环
while(myChar != 'n' && myChar != 'N')
你的情况不对<代码>myChar!='n'| | myChar!='N'将始终为真
使用
myChar!='n'&&myChar!='N'
相反如果您的代码,如果用户输入“X”(例如),当您达到while条件求值时,它将确定“X”与“N”(nChar!=“N”)不同,这将使您的循环条件为真,并在循环内执行代码。第二个条件甚至没有计算。您还应该将其更改为do while循环,这样您就不必随机初始化myChar。是的,应该是do,而您也可以使用do字符。toLowerCase(myChar)!='这就解决了我的问题。然而,&&表示“和”。这意味着这两个条件都必须成立。我是一名PL-SQL开发人员,我发现很难理解这个概念。@user547453如果使用|
,则只有一个或另一个条件可以为真以进入循环。如果myChar='n',则myChar!='n'
为false,但myChar!='N'
为true,因此它进入循环。使用&&
时,由于第一个条件为false,因此不会进入循环。