好的,我正在参加比赛。 PROG。在我的高中上课,“教”班级的老师对编程几乎一无所知。我加入了Java UIL团队,并在课堂上教授一些大学网站的课程。无论如何,我昨天开始写一个身体质量指数计算器,并且已经取得了成功,但我的问题是我希望在计算完成后再次运行程序println
。现在,我已经为这个场合学习了Do While
循环,但我的问题在于扫描仪。我希望以字符串形式接收输入,但是当我这样做时
String a = sc.nextLine();
在do
之外的,它表示y
或yes
无法解析为变量。一位朋友建议switch cases
,您怎么看?我使用Eclipse BTW。
String a = sc.nextLine();
do{
wow(); //My method name
}while(a == y); //Error is here
答案 0 :(得分:0)
要比较java中的对象,请使用.equals()方法而不是“==”运算符
使用while(a.equals("y"));
代替while(a == y);
答案 1 :(得分:0)
while(a == y);
这将永远不会有两个原因:
==
比较引用,而不是对象的内容。所以这里只检查a
和y
指向同一个对象,而不是它们包含相同的东西。y
。我假设您要将a
与文字字符串"y"
进行比较,在这种情况下,您应该使用a.equals("y")
。您的循环可以这样构建:
String input;
do {
wow();
input = scanner.nextLine();
} while(input.equalsIgnoreCase("y")); //using equalsIgnoreCase because user
//can input "y" or "Y".