【问题标题】:Java return value not working in if-statement [duplicate]Java返回值在if语句中不起作用[重复]
【发布时间】:2015-02-25 01:46:35
【问题描述】:

我有一个 if 语句,它应该比较一个方法的返回值,我已经将它设置为一个字符串,以确定接下来要调用哪个方法。但是,该方法似乎没有返回正确的值,因为程序从不进入 if 语句。我已经通过直接为变量分配一个值来测试它,而不使用该方法,并且它从那时起按照它应该的方式工作。

这是给我带来麻烦的方法:

public String loadMenu();
{
    Scanner input = new Scanner(System.in);
    System.out.print('\u000C');
    System.out.println("**********************************************************************" + "\n" +
                       "|                  Welcome to Custom Password Maker                  |" + "\n" +
                       "**********************************************************************" + "\n" +
                                                                                                  "\n" +
                       "Please type in which option below you would like to choose"             + "\n" + "\n" +
                       "1) MAKE A PASSWORD"                                                     + "\n" +
                       "2) EXIT PROGRAM"                                                                );
    return input.nextLine();
}

这是我尝试在 if 语句中使用返回值的部分:

public static void main(String[] args)
{
    Menus menu = new Menus();
    String choice = menu.loadMenu();
    System.out.println(choice);
    //choice = "1";
    if (choice == "1")
    {
        menu.makePassword();
    }
    if (choice == "2")
    {
        menu.exitProgram();
    }
    else
    {
        System.out.println("Huh...");
    }
}

当用户输入数字 1 时,我希望变量“选择”等于“1”,当我使用 System.out.println 时,它会在终端中打印数字 1,但它不满足 if声明。

【问题讨论】:

  • 使用 .equals(对象相等),而不是 ==(引用相等)

标签: java if-statement methods return-value


【解决方案1】:

使用 .equals() 比较你的字符串,意思是比较选择和“1”。

这样

if(choice.equals("1"))

【讨论】:

  • 好的,这是正确的,但我之前在 if 语句中使用过返回字符串的方法,这是第一次不起作用。感谢您的帮助,现在可以使用了。
猜你喜欢
  • 1970-01-01
  • 2016-11-08
  • 2018-08-28
  • 2012-11-30
  • 2023-02-06
  • 2018-09-21
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多