为什么这段代码返回 No-Such-Element-Exception?

问题描述 投票:0回答:0

我正在尝试编写一种方法,打印从 testCases 文件中读取的数据,并使用它在 switch 语句的帮助下对所述帐户执行某些操作。在这种情况下,我正在尝试将钱存入上述账户。该程序读取第一个字母以了解要调用的方法。然后,它读取接下来的四个数字作为帐号。之后,根据调用的字母,程序将读取下一个双倍作为存款金额。如果该金额是不可能存入的金额,它会打印一条错误消息通知用户。这是正在读取的测试用例文件。 D是押金。 Q是退出。该文件的语法是(做什么,acctNumber,存入金额)

D 9685 1100.67
d 7187 -2900.08
D 9000 701.66
Q

这里是 deposit() 方法。

public static void deposit(Scanner testCases,Scanner inputFile, PrintWriter outputFile, int[] acctNum, double[] balance, int numAccts) {
    
        int account = -1;
    double dp = 0;
    dp = testCases.nextDouble();
        account = findAcct(inputFile,acctNum, numAccts, account);
        outputFile.printf("Depositing money...");
        if (account== -1)
             outputFile.printf("Account not found.");
        else
            outputFile.printf("\nDepositing money into account number: %1d \nCurrent balance: %1.2f\nEnter amount to deposit: %1.2f", acctNum[account], balance[account], dp);
        
        
        if (dp < 0 || dp == 0)
        outputFile.printf("\n Invalid deposit amount: Cannot deposit negative/zero dollars. ");
        else {
            balance[account] += dp;
            outputFile.printf("\nSuccessfully deposited $%1.2f Into account %1d. new balance is: $%1.2f",dp,acctNum[account], balance[account]);    
        }           
}           

这里是 findAcct()。

public static int findAcct(Scanner inputFile, int[] acctNum, int numAccts, int account) {
        int var;
        var = inputFile.nextInt();
        for(int x=0;x < numAccts; x++) {
            if (acctNum[x] == var) {
            account = x;
            }
        }
        return account;
    }

我不明白为什么这个程序返回 NoSuchElementException,当它应该读取双倍作为存款金额时。相反,它根本就不是阅读。我该如何解决这个问题?

java io nosuchelementexception
© www.soinside.com 2019 - 2024. All rights reserved.