Java While循环未运行错误
我正在尝试创建一个“银行帐户”,这需要用户输入该银行帐户的名称、密码、余额和利息。我使用sentinel controlledwhile循环来实现这一点,但由于某些原因,我的sentinel无法工作。以下是我的部分代码,如果您能帮助我,那将非常好:
System.out.println("New Account: Enter name, type \"quit\" to exit. ");
String name = scan.nextLine();
while (!name.equals("quit")) {
System.out.println("Enter password: ");
String pass = scan.nextLine();
System.out.println("Enter balance (in pennies): ");
double bal = scan.nextDouble();
System.out.println("Enter interest: ");
double inter = scan.nextDouble();
BankAccount2 bankacc = new BankAccount2(name, pass, bal, inter);
accounts.add(bankacc);
System.out.println("Successful account creation! New Account: Enter name, type \"quit\" to exit. ");
name = scan.nextLine();
}
要澄清的是,问题是当我第一次输入“quit”时,在循环开始之前,它工作正常,而循环没有开始。然而,当我输入一个银行帐户,它会再次转到“输入名称”,当我输入退出时,循环不会停止
# 1 楼答案
我相信
nextDouble()
方法不会读取下一个新行字符。查看有关此的文档您可以在调用
nextDouble()
之后尝试调用nextLine()
您可以检查扫描仪here的来源。如果你因为糟糕的javadoc或未记录的副作用而陷入困境,我认为最好是检查代码
似乎它使用的是一个正则表达式匹配器,它只匹配一个double模式