Java中if语句使用||(逻辑或)时的判断错误问题求助
问题分析与解决
这是典型的逻辑判断错误,属于初学者容易踩的小坑。
你输入A或B仍触发退出,核心问题出在逻辑或(||)的使用上:逻辑或只要任意一个条件为true,整个表达式结果就为true。
当你写grade != 'A' || grade != 'B'时:
- 输入'A'时,
grade != 'B'为true,整个条件成立,执行退出逻辑 - 输入'B'时,
grade != 'A'为true,同样条件成立,执行退出逻辑
正确逻辑应该是既不是A也不是B时才判定无效,这时候要用逻辑与(&&):
char grade = ...; // 获取用户输入的等级 if (grade != 'A' && grade != 'B') { System.out.println("无效输入"); System.exit(0); }
也可以用反向逻辑写法,效果完全一致:
if (!(grade == 'A' || grade == 'B')) { System.out.println("无效输入"); System.exit(0); }
内容的提问来源于stack exchange,提问作者joel
相关产品推荐
相关产品推荐

