有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我相信nextDouble()方法不会读取下一个新行字符。查看有关此的文档

    您可以在调用nextDouble()之后尝试调用nextLine()

    您可以检查扫描仪here的来源。如果你因为糟糕的javadoc或未记录的副作用而陷入困境,我认为最好是检查代码

    似乎它使用的是一个正则表达式匹配器,它只匹配一个double模式