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

时间:2015-04-24 05:18:20

标签: java java.util.scanner

我试图弄清楚为什么我的功能不能正常工作。代码是相当基本和自我解释的。这是功能:

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行输入什么作为“输入”,该函数都会将其视为我没有输入'y'或'n',它只是不断循环while(true)并打印“响应无效。请重试。”我不知道为什么我的if / else语句不能正常工作。任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

equals而不是==

比较字符串
if((input.trim()).equals("y")){

equals比较值
== comapres引用

答案 1 :(得分:0)

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