Java:为什么if语句永远不会解析为true?

时间:2016-12-21 11:58:40

标签: java if-statement user-input

我正在尝试制作一个noughts-and-crosses原型。我正在努力的代码部分是获取用户输入,如果输入是 y ,它应该将游戏状态更改为重新启动游戏的0。然而,这不会发生。任何人都可以解释原因吗?

Scanner s = new Scanner(System.in);
                System.out.println("Would you like to play again?");
                if (s.next().toLowerCase() == "y") {
                    System.out.println("Okay");
                    g.gamestate = 0;
                } else {
                    g.gamestate = 4;
                }

2 个答案:

答案 0 :(得分:1)

尝试使用xfunction.js 运算符“==”比较字符串对象上的链接,方法“等于”比较值。

答案 1 :(得分:0)

是的,正如有人评论说,解决方案需要使用equals()而不是==

Scanner s = new Scanner(System.in);
  System.out.println("Would you like to play again?");
  if (s.next().equalsIgnoreCase("y")) {
      System.out.println("Okay");
      //g.gamestate = 0;
  } else {
      System.out.println("No");
     // g.gamestate = 4;
  }