Java:if/else 无限循环中的语句不起作用

Java: if/else statement in infinite loop not working

我想弄清楚为什么我的功能没有正常工作。该代码相当基本且不言自明。这是函数:

public static void Greet(){
    System.out.println("Hello, what is your name? ");
    name = scan.nextLine();
    do{
        System.out.println("Would you like to order some coffee, " + name + "? (y/n) ");
        input = scan.nextLine();
        if(input == "y"){
            System.out.println("Great! Let's get started.");
            break;
        }
        else if(input == "n"){
            System.out.println("Come back next time, " + name + ".");
            System.exit(0);
        }
        else{
            System.out.println("Invalid response. Try again.");
        }
    }
    while(true);
}

基本上,无论我在第 5 行输入什么 "input",该函数都会将其视为我没有输入 'y' 或 'n',它只是不断循环 while(true) 并打印 "Invalid response. Try again." 我不知道为什么我的 if/else 语句不能正常工作。任何帮助将不胜感激,谢谢!

比较字符串 equals 而不是 ==

if((input.trim()).equals("y")){

equals比较值
== 比较参考文献

equals比较。

if(input.equals("y")){
            System.out.println("Great! Let's get started.");
            break;
        }
        else if(input.equals("n")){
            System.out.println("Come back next time, " + name + ".");
            System.exit(0);
        }