我是java的初学者,我刚刚开始学习接口,所以我试图创建一个程序,该程序具有实现接口的类。无论如何,我遇到了程序中while循环的问题。我尝试给用户提供在与一个人或一个人交谈之间做出选择的机会,据我所知&&
检查两个条件(如果其中任何一个是真的,它会运行循环)。
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner ai = new Scanner(System.in);
Conversation guy = new Human();
Conversation rox = new Robot();
System.out.println("What do you want to talk to?");
String choice = ai.nextLine();
while (choice != "Robot" && choice!= "Person"){
System.out.println("Option not available, choose again.");
choice = ai.nextLine();
}
switch(choice){
case "Person":
System.out.println("What's my name?");
guy.greet();
guy.conv();
guy.bye();
break;
case "Robot":
System.out.println("What's my name?");
rox.greet();
rox.conv();
rox.bye();
break;
}
ai.close();
}
}
我试图这样做,如果输入既不是"Person"
也不是"Robot"
,它会再次扫描新输入但是尽管输入是其中一个,程序总是运行循环,为什么呢?
答案 0 :(得分:0)
您正在使用String
比较对象(==
),比较此处的引用:
choice != "Robot" && choice!= "Person"
您需要使用.equals()
方法来有意义地比较字符串