Java 边问边做

Java 边问边做,java,string,while-loop,do-while,Java,String,While Loop,Do While,好的,我要参加一个综合考试。掠夺。在我的高中班上,“教”这个班的老师实际上对编程一无所知。我加入了javauil团队,正在通过一些大学网站上的课程进行教学。不管怎样,我昨天开始编写体重指数计算器,并取得了成功,但我的问题是,我希望在计算完成后有一个println提示符来再次运行该程序。现在,我已经学会了这次的Do-While循环,但我的问题是扫描仪。我想以字符串形式接收输入,但当我这样做时 String a = sc.nextLine(); 在do之外,它表示y或yes不能解析为变量。一位朋

好的,我要参加一个综合考试。掠夺。在我的高中班上,“教”这个班的老师实际上对编程一无所知。我加入了javauil团队,正在通过一些大学网站上的课程进行教学。不管怎样,我昨天开始编写体重指数计算器,并取得了成功,但我的问题是,我希望在计算完成后有一个
println
提示符来再次运行该程序。现在,我已经学会了这次的
Do-While
循环,但我的问题是扫描仪。我想以字符串形式接收输入,但当我这样做时

String a = sc.nextLine(); 
do
之外,它表示
y
yes
不能解析为变量。一位朋友建议换箱子,你觉得怎么样?顺便说一句,我使用Eclipse

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

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

使用
while(a.equals(“y”)而不是
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".

你的测试应该是
a.equals(“y”)
不要将
=
与字符串一起使用。请看你是否声明了
a
y
?你可能需要
while(“y”).equalsIgnoreCase(a)| |“YES”。equalsIgnoreCase(a))
String input;
do {
    wow();
    input = scanner.nextLine();
} while(input.equalsIgnoreCase("y"));  //using equalsIgnoreCase because user
                                       //can input "y" or "Y".