mardi 24 février 2015

Java return value not working in if-statement

I have an if statement that is supposed to compare the return value of a method, which I've set as a string, to determine which method to call next. However, the method doesn't seem to be returning the correct value, because the program never enters the if-statements. I've already tested it by assigning a value straight to the variable, without using the method, and it works the way it's supposed to from that point on.


Here is the method that is giving me trouble:



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();
}


And Here is the part where I try to use the return value in an if statement:



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...");
}
}


I would expect the variable 'choice' to equal "1" when the user inputs the number 1, and when I use System.out.println it prints the number 1 in the terminal, but it doesn't satisfy the if statement.


Aucun commentaire:

Enregistrer un commentaire