Java:if/else语句在无限循环中不起作用
我正试图弄明白为什么我的函数不能正常工作。这段代码相当基本,不言自明。以下是函数:Java:if/else语句在无限循环中不起作用,java,java.util.scanner,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) ");
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 reat”。我不知道为什么if/else语句不能正常工作。任何帮助都将不胜感激,谢谢 通过
等于比较字符串,而不是通过=
if((input.trim()).equals("y")){
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);
}
break
将使您脱离循环将input==“y”
更改为“y”。等于(input)
我在第9行有一个中断,但这不是问题所在。问题是,不管我输入什么,它总是循环到最后的“else”语句。我将input==“y”
和input==“n”
替换为“y”。equalsIgnoreCase(input)
和“n”。equalsIgnoreCase(input)
,它对me@MadProgrammer我的坏消息-请忽略