【问题标题】:My program is ignoring my if statement and goes straight to the else [duplicate]我的程序忽略了我的 if 语句并直接进入 else [重复]
【发布时间】:2013-10-03 12:09:53
【问题描述】:
String firstanswer = scan.nextLine();
    if(firstanswer == answer2)
        {
            System.out.println("OK lets get started");
            }
    else
        {
            System.out.println("That is incorrect, of course you want to play");
            }

//answer2 设置为“是”,我在上面声明了它

【问题讨论】:

  • 顺便说一句,不要假设您的 if 语句被忽略只是因为只有您的 else 正在执行。只需在 if 语句处设置断点即可显示发生了什么。
  • 每次我看到==而不是equals...它毁了我的一天。

标签: java string if-statement


【解决方案1】:

使用firstanswer.equals(answer2) 而不是firstanswer == answer2

当您想在 java 中检查 String 是否相等时,请使用 equals 方法而不是 == 运算符。

  • equals 方法检查String 对象的内容是否相同
  • == 运算符检查两个引用变量是否引用相同的 String 对象

要了解字符串和相等,请阅读String comparison with equals and assignment operator 它将帮助您更好地理解这个概念。

【讨论】:

  • @MarounMaroun 感谢您的参考。
【解决方案2】:

使用equals() 而不是== 来比较字符串。

【讨论】:

    【解决方案3】:

    if(firstanswer.equals(answer2)) 就是你要找的东西。

    firstansweranswer2 是指向字符串对象的指针。 == 检查指针是否相等(它们是否指向同一个对象),而 equals() 比较两个字符串的内容并返回一个表示内容是否相等的布尔值。

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 1970-01-01
      • 2018-01-11
      • 2022-11-15
      • 2018-03-26
      • 1970-01-01
      相关资源
      最近更新 更多