好的,我要做个比较。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发布于 2013-11-20 01:54:25
要比较java中的对象,请使用.equals()方法而不是"==“运算符
使用while(a.equals("y"));而不是while(a == y);
发布于 2013-11-20 01:55:46
while(a == y);这永远不会起作用,原因有两个:
==比较引用,而不是对象的内容。所以这里它只是检查a和y是否指向相同的对象,而不是检查它们是否包含相同的内容。y anywhere。我假设您想要将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".https://stackoverflow.com/questions/20078518
复制相似问题