首页 > 解决方案 > .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 我已经有一段时间了,这让我很困惑。

标签: javastringboolean

解决方案


有逻辑错误。当两个 equal() 结果都为假时,它应该进入“再试一次”。

String _gender = "M";
if(!"m".equals(_gender.toLowerCase()) && !"f".equals(_gender.toLowerCase())){
  System.out.println("try again");
}else 
  System.out.println("success");

推荐阅读