我有一种检查用户是否是学生的方法,但我无法验证条件。
char custStud = '0';
Scanner input = new Scanner(System.in);
do{
System.out.println("Are you a student? (Type Y or N): ");
custStud = input.next().charAt(0);
custStud = Character.toLowerCase(custStud);
}
while (custStud != 'y' || custStud != 'n');
当我启动这个程序时,它不会打破循环,即使是' y'或者' n'进入。我怀疑custStud可能在更改为小写时意外更改了类型,但我不确定。 如何使这个循环正常工作?
答案 0 :(得分:4)
while (custStud != 'y' || custStud != 'n')
始终为真,因为custStud
不能同等于' y'和' n'。
您应该将条件更改为:
while (custStud != 'y' && custStud != 'n')
答案 1 :(得分:1)
你错了:
while (custStud != 'y' || custStud != 'n');// wrong
while (custStud != 'y' && custStud != 'n');// correct
尝试运行此代码:
char custStud = '0';
Scanner input = new Scanner(System.in);
do{
System.out.println("Are you a student? (Type Y or N): ");
custStud = input.next().charAt(0);
custStud = Character.toLowerCase(custStud);
}
while (custStud != 'y' && custStud != 'n');
System.out.print("\n answer:"+custStud);