java - .equals 与其他布尔函数
问题描述
在我程序的一小部分中,我试图验证是否有人输入了 M,m,F,f 并且在大多数情况下我得到了它,但是当我将这些语句放在一起时似乎有问题。例如,
String _gender = "M";
if(!"m".equals(_gender.toLowerCase())||!"f".equals(_gender.toLowerCase())){
System.out.println("try again");
}else
System.out.println("success");
它告诉我再试一次,但是当我把它说成:
String _gender = "M";
if(!"m".equals(_gender.toLowerCase())){
System.out.println("try again");
}else
System.out.println("success");
它给了我成功。我不知道这是否与我使用 or 的方式有关,但这就是我的猜测。我还认为这可能与支票同时检查两者或其他事实有关。Idk 我已经有一段时间了,这让我很困惑。
解决方案
有逻辑错误。当两个 equal() 结果都为假时,它应该进入“再试一次”。
String _gender = "M";
if(!"m".equals(_gender.toLowerCase()) && !"f".equals(_gender.toLowerCase())){
System.out.println("try again");
}else
System.out.println("success");
推荐阅读
- c# - 如何调试 ProtectKeysWithAzureKeyVault?
- sql - 编译语句时出错:失败:ParseException 行 4:0 无法识别 select 子句中 '(' 'select' 'applicationprofileid' 附近的输入
- r - 将列中的值替换为向量值
- java - 如何在 vscode 中将匿名类转换为 lambda 表达式,反之亦然?
- c# - 如何解决服务层内部的循环依赖
- swift - 如何设置画布预览语言?
- embedded - 如何在 2 个 Stm32 之间建立 UART 通信并产生 PWM 信号
- sql-server - 如何使用条件/where 子句修改 xml 变量
- java - JFilechooser 更改默认外观
- angular - ngrx forms 8 reducer 不更新状态