代码在真“if”语句后不执行
我正在制作一个持有帐户信息的银行帐户。代码在真“if”语句后不执行
每个账户每个月最多可获得3次免费提款,在前三次免费后,每增加一笔交易收取1美元。我有一个条件,在3个免费的交易之后处理向每个交易收取客户3美元的费用,但这不是正确的。
public static double getTFee(int accountNumber) {
if (transactionCount[accountNumber] >= 4) {
return 1;
} else {
return 0;
}
的函数,该函数有4个或更多交易的每个帐户返回1,但它不提供“测试”类的适当平衡。即如果该账户每次存入1美元的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函数的东西。请帮帮我。 谢谢
你不应该每次调用getTFee时间返回1,该代码会为你工作:
public static double getTFee(int accountNumber) {
if (transactionCount[accountNumber] >= 4) {
return transactionCount[accountNumber] - 3;
} else {
return 0;
}
要解释的东西,getTFee
应该返回0,如果帐户已完成3笔交易或更少,但是当账户完成4或更多时,我们从总交易中减去3笔免费交易并返回费用(每次交易费用1美元,因此不需要将结果乘以1)
太棒了!非常感谢! – Dylan
@Dylan不客气 –
*显然*条件*不是真的。 – EJP