当前位置: 首页 > 知识库问答 >
问题:

在达到极限之前,你如何继续增加双倍?

家弘业
2023-03-14

例如,我有一个银行账户,限额是500欧元。首先我加400欧元,然后再加150欧元。例如,如何更改代码以添加上次添加的100欧元,然后打印;“您的限额已达到(原150欧元)的限额(剩余50欧元),无法添加。”

我现在的代码是这样的;

private double limit;
private String name;
double deposit = 0;
double balance = 0;
int numberOfDeposits = 0;
double afhaling = 0;

public Bankaccount(String name, double limit) // constructor
{
    this.name = name;
    this.limit = limit;
}

public boolean addDeposit(double deposit){
    if(deposit < 0){
        balance = balance;
        return false;
    }
    
    if(deposit > 0){
        balance = balance + deposit;
        numberOfDeposits ++;
        return true;
    }
    
    if(balance > limit){
        balance = balance;
        return false;
    }
    return false;
}

共有2个答案

公良信然
2023-03-14

我对你的代码做了一些修改。让我知道这是否适合你。


  public class Bankaccount {
    private double limit;
    private String name;
    double deposit = 0;
    double balance = 0;
    int numberOfDeposits = 0;
    double afhaling = 0;

    public Bankaccount(String name, double limit) // constructor
    {
        this.name = name;
        this.limit = limit;
    }

    public boolean addDeposit(double deposit) {
        if (deposit <= 0) {
            return false;
        }

        var sum = balance + deposit;
        if (!(balance >= limit)) {
            if (balance != limit && sum > limit) {
                var amount = limit - balance;
                balance += amount;
                System.out.println("remaining amount " + (deposit - amount));
            } else if (balance != limit && sum < limit) {
                balance = sum; 
            }
            System.out.println("your new balance is " + balance);
            numberOfDeposits++;
            return true;
        } else {
            return false;
        }
    }

}
祝锐
2023-03-14

就像我在评论中写的那样。在返回之前,您需要检查是否达到限制。这里有一个更好的函数:

java prettyprint-override">public boolean addDeposit(double deposit){
        if(deposit <= 0){ // include the case for deposit == 0
            balance = balance; // is redundant
            return false;
        }else{
            balance = balance + deposit;

            if(balance > limit){
                balance = balance;
                System.out.print("Can not deposit because limit is reached.");
                return false;
            }else {
                numberOfDeposits++;
                return true;
            }
        }
    }
 类似资料:
  • 我有一个方法,可以为WebView的WebEngine设置一个新的网页,需要等到网页加载完成后才能继续使用当前方法。 基本上我想要: 我尝试过使用ChangeListener(),但它只会在我的方法完成执行后执行。我在谷歌上搜索了许多导致更多挫折感的术语,比如“java非阻塞等待布尔值”。最终,我成功地启动了新线程(以防止应用程序GUI锁定)并使用了倒计时(与Thread.join()相反)。下面

  • 我的代码旨在循环遍历一个文件,边走边添加,然后显示总数。目前,它正确处理错误,但是当它遇到不正确的数据(非整数)时,它只是给出总数,直到文本文件的那一行。我想要的是让它继续,因为前面的数据可能仍然是整数。我该怎么做?不仅如此,而且我对InputMismatchException的了解是没有显示适当的错误。 我的代码: 文件示例:10 20 30 40 50 60

  • 问题内容: 我正在尝试在Node.js / Express中创建一个路由,该路由从两个查询中读取数据,然后基于来自查询的数据来增加计数。由于Node.js是异步的,因此在读取所有数据之前会显示总计。 我创建了一个简单的示例,以达到我目前正在做的事情 我不确定要等到两个功能都完成后才能打印总计,我该做什么。我是否需要创建一个自定义事件发射器来实现这一目标? 问题答案: 拥抱异步性: 或使用Promi

  • 我只找到了如何等待用户输入。但是,我只想暂停一下,这样我的时不会使我的计算机崩溃。 我尝试了暂停(1),但它显示附近的语法错误。怎么能做到呢?

  • 因此,我尝试将依赖项加载到代码中,然后得到以下结果: TypeLoadException:无法加载“类型”系统。数据SqlClient。SqlConnection“来自程序集”系统。数据,版本=2.0.0.0,区域性=中立,PublicKeyToken=b77a5c561934e089'。系统反射MonoMethodInfo。GetMethodInfo(IntPtr句柄)(at/Users/bui

  • 有一个创建XML文件的外部程序,但创建可能需要一段时间。我需要我的Java程序等到文件存在后再继续。 我读了一些关于同步块的书,我读到我可以做这样的事情: 老实说,我对同步任务知之甚少,所以我想知道我是否在正确的轨道上,或者我是否偏离了轨道。