我正在为递归的类编写程序。那部分完美无缺。但我还需要重复该程序,直到用户选择退出。
我的程序提示重复该程序但不等待响应。相反,它立即退出。
我在下面的代码中添加了评论,我相信问题所在。
createdAt
答案 0 :(得分:2)
在userAgain = sc.nextLine()
之前添加以下代码行:
sc.nextLine();
它应该有效。对sc.nextInt()的调用并不消耗换行符\ n,因此对sc.nextLine()的调用消耗了来自nextInt的调用\ n并继续认为&#34 ;输入"在用户实际输入任何内容之前,已按下该键。最清楚的是,您可能希望在调用readInt()之后将此调用包含在nextLine()中,以便其他读取您的代码的人(或者您,稍后!)知道您为什么要包含此额外调用。您应该将它添加到一个地方或另一个地方,而不是两者。
在参考您正在进行的字符串比较时,请使用.equals方法:https://www.leepoint.net/data/expressions/22compareobjects.html
if(object1 == object2)
检查两个引用是否属于内存中的同一对象,并且不按值进行比较,而
if(object1.equals(object2))
检查两个对象的值在逻辑上是否相等。
根据我在您的计划中的建议,您想要检查userAgain值:
if(userAgain.equals("yes")){
endLoop = false;
} else {
endLoop = true;
}