当前位置: 首页 > 知识库问答 >
问题:

java equalsIgnoreCase()在do-time循环中始终返回false;[重复]

唐彦
2023-03-14

我只是想确定用户是否输入了YES或NO值(尽管不考虑大写,因此equalsIgnoreCase())。但是,无论我输入是或否,do while都不会中断,例如。

public int addInformation() {
    final int YES = 1;
    final int NO = 0;
    String userDecision = "";

    try(Scanner scanner = new Scanner(System.in)) {
        System.out.println("Add Information Now? [YES/NO]");

        do {
            System.out.println("Please Enter YES or NO ");
            userDecision = scanner.nextLine();
        } while(!userDecision.equalsIgnoreCase("yes") |
                           !userDecision.equalsIgnoreCase("no"));
    }
    if(userDecision.equalsIgnoreCase("yes")) {
          return YES;
    }
    return NO;
}

我正在寻找“当输入值不等于‘是’或‘否’时,再次请求数据”的行为。然而,我的代码建议“不管键入什么,让我们只是为了好玩而继续循环…”我哪里出错了,斯塔克?谢谢

共有2个答案

丁安宜
2023-03-14

你的情况不正确。如果其中一个条件为false,则需要结束循环(因此需要and)。大概,

while(!userDecision.equalsIgnoreCase("yes") &&
                       !userDecision.equalsIgnoreCase("no"));
赫连昕
2023-03-14

这个条件

while (!userDecision.equalsIgnoreCase("yes") |
                       !userDecision.equalsIgnoreCase("no"))

这永远是真的。任何字符串必须不等于“是”或“否”。

如果要检查字符串是否不等于其中任何一个,您的意思是:

while (!userDecision.equalsIgnoreCase("yes") &&
                       !userDecision.equalsIgnoreCase("no"))
 类似资料:
  • 在Bash中模拟do-time循环的最佳方法是什么? 我可以在进入循环之前检查条件,然后继续在循环中重新检查条件,但这是重复的代码。有没有更干净的方法? 我的脚本的伪代码: 如果在时间之后启动,则不会执行,而do-time会执行。

  • 问题内容: 请弄清楚这一点。该代码正常运行,没有任何异常。 Buttttttttt return语句始终返回false,并且文件未上传到服务器上。请有人帮忙。 供您参考,1)我在办公室网络中。-–>我们需要添加任何代理吗? 请帮忙 问题答案: 确切的失败消息可以通过调用FtpClient#getReplyCode()来找到。从该页面(我的重点): 连接后立即是唯一实时的操作,您需要检查回复代码(因

  • 问题内容: 它们没有正确回答(或根本没有回答)。但是,我不知道为什么总是对我返回false。有人可以告诉我为什么以及如何解决问题?提前致谢。 注意:我所说的活动是包含在中的孩子,这都不是 MAIN 或 LAUNCHER 活动。我不知道这有什么区别。 编辑: 因此应用程序不会进入后台。我希望它进入后台,就像按下硬件HOME一样 问题答案: 我不知道为什么要回去给你。也许您的清单上有些奇怪?无论如何,

  • 我尝试使用firebase的isNewUser方法,但它总是返回false。据我所知,它只适用于通过Firebase控制台创建的帐户,这正是我的情况。只要用户点击“连接”并且他的信息正确,该函数就会被调用。 谢谢你的帮助!

  • 问题内容: 我在将json对象发布到使用REST的API时遇到一些困难。我是使用cURL的新手,但是我进行了全面搜索以尝试找到问题的答案,但结果却很简短。我的cURL请求总是返回false。我知道它甚至都没有发布我的json对象,因为我仍然会从url得到响应。我的代码如下。 $ response仅返回“ false” 有什么想法吗? 问题答案: 可能为false,因为将false(即失败)返回到。

  • 在索尼Xperia Z2上的onLocation可用性回调中,FusedLocationProviderClient总是返回false。权限已授予,位置已启用。在位置偏好设置选项使用无线上网,网络和全球定位系统。模拟器,三星,BQ,Nexus,小米一切正常。操作系统版本从6到8。但是在索尼(andorid 6.0.1)我有这个问题。有什么想法吗?我已经结束了 回拨 要求