You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 10:54:47