做问题

时间:2013-11-19 17:52:57

标签: java string while-loop do-while

好的,我正在参加比赛。 PROG。在我的高中上课,“教”班级的老师对编程几乎一无所知。我加入了Java UIL团队,并在课堂上教授一些大学网站的课程。无论如何,我昨天开始写一个身体质量指数计算器,并且已经取得了成功,但我的问题是我希望在计算完成后再次运行程序println。现在,我已经为这个场合学习了Do While循环,但我的问题在于扫描仪。我希望以字符串形式接收输入,但是当我这样做时

String a = sc.nextLine(); 
do之外的

,它表示yyes无法解析为变量。一位朋友建议switch cases,您怎么看?我使用Eclipse BTW。

String a = sc.nextLine();
do{
    wow(); //My method name
}while(a == y); //Error is here

2 个答案:

答案 0 :(得分:0)

要比较java中的对象,请使用.equals()方法而不是“==”运算符

使用while(a.equals("y"));代替while(a == y);

答案 1 :(得分:0)

while(a == y);

这将永远不会有两个原因:

  • ==比较引用,而不是对象的内容。所以这里只检查ay指向同一个对象,而不是它们包含相同的东西。
  • 您尚未在任何地方声明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".