我有一个应该包含Y,y,n或N字符的char变量,我想测试它是否不包含它,然后显示错误消息并退出程序。
这是我正在使用的代码;
if (userDecision != 'Y' || userDecision != 'y' || userDecision != 'n' || userDecision != 'N')
{
System.out.println("Error: invalid input entered for the interstate question");
System.exit(0);
}
无论变量中有什么,它总是返回true并执行命令以退出程序,我在做什么错呢?
最佳答案
||
表示逻辑或。您要改为&&
。
if (userDecision != 'Y' && userDecision != 'y' ...
如果a或b为true,则
a || b
返回true。假设userDecision
是'Y'
。然后userDecision != 'Y'
为假userDecision != 'y'
是真的userDecision != 'N'
是真的userDecision != 'n'
是真的因此,条件均为true,并且执行了if分支。
OTOH,如果a和b均为true,则
a && b
返回true,这是您真正需要的。