Java银行账户存款与成功取款次数计数方法实现求助
现有代码问题
你写的计数方法存在以下几个明确错误:
- 方法返回值类型错误:次数是整数值,不应该使用
double作为返回类型,应当使用整型int - 存款计数逻辑无效:空
for循环初始值deposit=0,判断条件deposit>0永远不成立,循环体根本不会执行;且amtdeposits变量没有初始化,也没有关联任何实际存款交易数据,根本无法统计到真实次数 - 取款计数逻辑错误:Java中字符串比较不能用
!=运算符,必须使用equals()方法判断内容是否相等;amtwithdraw=amtwithdraw++属于自增写法错误,后置自增直接写amtwithdraw++即可,不需要额外赋值 - 计数逻辑和业务流程脱节:计数不能靠单独的方法凭空计算,必须和你已经实现的存款、取款业务方法绑定,否则没有数据源支撑计数
正确实现思路
- 首先在业务类中定义两个
int类型的成员变量,初始值设为0,分别用来记录存款总次数、取款成功次数 - 在你已经写完的存款业务方法中,等存款金额校验通过、资金入账完成,确认存款操作成功后,给存款计数变量加1
- 在你已经写完的取款业务方法中,只有等余额校验通过、资金扣款完成,确认取款操作成功后,才给成功取款计数变量加1,余额不足等失败场景不计数
- 两个计数方法只需要直接返回对应的计数变量值即可,不需要在计数方法里写循环、业务判断逻辑
参考代码
// 类成员变量,初始化计数为0 private int depositCount = 0; private int successWithdrawCount = 0; private double balance = 0; // 你原本就有的账户余额变量 // 你已有的存款业务方法,成功时累加计数 public void deposit(double amount) { // 原有参数校验逻辑 if (amount <= 0) { System.out.println("存款金额不能小于等于0"); return; } // 原有入账逻辑 balance += amount; // 存款成功,计数+1 depositCount++; System.out.println("存款成功,当前余额:" + balance); } // 你已有的取款业务方法,仅成功时累加计数 public void withdraw(double amount) { // 原有余额校验逻辑 if (amount > balance) { System.out.println("Withdraw Failed: Insufficient Amount"); return; } // 原有扣款逻辑 balance -= amount; // 取款成功,计数+1 successWithdrawCount++; System.out.println("取款成功,当前余额:" + balance); } // 获取存款总次数 public int countDeposits() { System.out.println("存款总次数:" + depositCount); return depositCount; } // 获取成功取款次数 public int countWithdrawals() { System.out.println("成功取款次数:" + successWithdrawCount); return successWithdrawCount; }
内容的提问来源于stack exchange,提问作者The Outcast
相关产品推荐
相关产品推荐

