我正在制作一个包含帐户信息的银行帐户。
每个帐户每月最多可获得3次免费提款,前三次免费后每笔额外交易需支付1美元。我有一个条件,即在3个免费套餐之后为每个交易向客户收取3美元,但它无法正常工作。
public static double getTFee(int accountNumber) {
if (transactionCount[accountNumber] >= 4) {
return 1;
} else {
return 0;
}
对于每个有4个或更多交易的账户,该函数返回1,但它不能在“tester”类中提供正确的余额。即如果该账户每次收取5美元的存款,那么自从最后两次收费以来应该有3美元。但是我的测试员类在第4次交易后没有扣除1美元,在前一种情况下返回4美元的余额。这是我的测试人员课程:
System.out.println("Please enter the account number.");
CheckingAccount.setAccountNumber(scanner.nextInt());
for (int j = 0; j < size; j++) {
if (bankAccount[j] == CheckingAccount.getAccountNumber()) {
System.out.println("Please enter the amount you desire to deposit.: ");
CheckingAccount.setAmount(Double.parseDouble(scanner.next()));
amount[j] = amount[j] + CheckingAccount.getAmount();
CheckingAccount.transaction(CheckingAccount.getAccountNumber());
value = CheckingAccount.checkTFee(CheckingAccount.getAccountNumber());
System.out.println("Your balance is: $" + (amount[j] - CheckingAccount.getTFee(value)));
} else if (bankAccount[j] != CheckingAccount.getAccountNumber()) {
}
测试类运行,因此问题不是测试器类中的条件。它必须是getTFee函数。请帮我。 谢谢
答案 0 :(得分:-1)
每次拨打getTFee时都不应该返回1,此代码适用于您:
public static double getTFee(int accountNumber) {
if (transactionCount[accountNumber] >= 4) {
return transactionCount[accountNumber] - 3;
} else {
return 0;
}
要解释一下,如果帐户已完成3次或更少的交易,getTFee
应返回0,但当帐户完成4次或更多次时,我们从总交易中减去3次免费交易并返还费用(每笔交易的费用为1美元,因此无需将结果乘以1)