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

如果在银行账户类别中遗漏了对账单?

子车鸿运
2023-03-14

我对以下语法有一些问题。

我目前正在学习Java,并一直在复习过去的试卷,以帮助我积累Java知识。

问题是:

编写一个类帐户,其中包含帐户编号和当前余额的实例变量。实现一个构造函数和方法getAccountNumber()、getBalance()、借记(双倍金额)和贷记(双倍金额)。在执行借记和贷记时,请检查指定的金额是否为正数,并且在借记方法中不会导致透支。在这些情况下返回false。否则,请更新余额。

我已经尝试过这样做,但是,我还没有实现借方和贷方方法的布尔函数。我只是想先构建这个程序,并尝试让它运行起来。之后我将对此进行研究,因为我不确定如何返回true或false,同时也试图从上述方法中返回金额。

请原谅我代码中的任何错误,因为我仍在学习Java。

我可以运行我的代码,但当我输入存款时,它似乎不能正常工作,我希望这里有任何提示。

这是我的代码

import java.util.*;

public class Account {

private int accountNumber;
private static double currentBalance;
private static double debit;

// ***** CONSTRUCTOR *****//
public Account(double currentBalance, int accountNumber) {
    accountNumber = 12345;
    currentBalance = 10000.00;
}

public int getAccountNumber(int accountNumber) {
    this.accountNumber = accountNumber;
    return accountNumber;
}

public double getcurrentBalance(double currentBalance) {
    this.currentBalance = currentBalance;
    return currentBalance;
}

public static double debit(double currentBalance, double amount) {
    currentBalance -= amount;
    return currentBalance;
}

public static double credit(double currentBalance, double amount) {
    currentBalance += amount;
    return currentBalance;
}

public static void main(String [] args){
    String withdraw = "Withdraw";
    String deposit = "Deposit";
    double amount;
    Scanner in = new Scanner(System.in);
    System.out.println("Are you withdrawing or depositing? ");
    String userInput = in.nextLine();
    if(userInput == withdraw)
        System.out.println("Enter amount to withdraw: ");
        amount = in.nextDouble();
            if(amount > currentBalance)
                System.out.println("You have exceeded your amount.");

                debit(currentBalance, amount);

            System.out.println("Your new balance is: " + currentBalance);

            if (userInput == deposit)
                System.out.println("Enter amount to deposit: ");
                    amount = in.nextDouble();
                    credit(currentBalance, amount);

        System.out.println("Your new balance is: " + currentBalance);

}
}

再次请原谅我代码中的任何错误。我还在学习它的语法。

共有3个答案

洪雅健
2023-03-14
if (userInput == deposit)

应该是

if (userInput.equals(deposit))

提取时相同。

微生善
2023-03-14

您不使用括号,因此只有执行if语句后的第一行。此外,应该使用. equals(therString)比较String的。像这样:

if(userInput.equals(withdraw))
    System.out.println("Enter amount to withdraw: "); //Only executed if userInput == withdraw
    amount = in.nextDouble(); //Always executed

if(userInput.equals(withdraw)) {
    System.out.println("Enter amount to withdraw: "); 
    amount = in.nextDouble(); 
    //All executed
}

执行以下操作:

if(userInput.equals(withdraw)) {
    System.out.println("Enter amount to withdraw: ");
    amount = in.nextDouble();
    if(amount > currentBalance)
            System.out.println("You have exceeded your amount.");

    debit(currentBalance, amount);
    System.out.println("Your new balance is: " + currentBalance);
}

if (userInput.equals(deposit)) {
     System.out.println("Enter amount to deposit: ");
     amount = in.nextDouble();
     credit(currentBalance, amount);
     System.out.println("Your new balance is: " + currentBalance);
}

请注意,如果您的提款金额超过当前余额,您将收到“警告消息”,但您的提款将继续。因此,你最终会得到一笔负的钱。如果你不想这样做,你必须相应地改变它。但是,通过这种方式,可以看出使用括号(或不使用括号)会产生不同的效果。

松智勇
2023-03-14

在if语句中,您试图比较字符串对象。

在Java中,要比较字符串对象,使用的是等于方法,而不是比较运算符

if(userInput.equals(withdraw))

代码中有几个实例使用比较字符串对象,将其更改为使用等于。

此外,当使用条件块时,最好用大括号包围块{}

if(true){

}
 类似资料:
  • 我目前正在开发一个应用程序,用户A可以从用户B那里购买东西。 我想做的是让用户A用PayPal付款。然后在后端,我增加用户B在我的数据库中的帐户余额,然后允许用户B将这笔钱提取到他的银行帐户。这是我的问题,是否可以将钱从PayPal转移到各种银行账户?例如,用户B通过表单发送他的银行帐号,并在后端进行适当的API调用以转移资金。 如果没有使用PayPal,那么我如何执行这种类型的转移,可能是使用其

  • 该简介旨在创建一个ID为1122、余额为20000英镑、年利率为4.5%、取款方式为2500英镑、存款方式为3000英镑、打印余额、月利率和账户创建日期的账户对象。 我写了下面的代码,但主要方法是初始余额错误应该是20000英镑,而不是20500英镑,提款和存款也错误。金额应该是提款=17,500英镑,存款=20,500英镑。关于如何重新爱这个有什么建议吗?

  • 我正在开发一个银行账户类,可以从银行账户余额中存取款。我正在处理分配的类部分,在那里你声明了驱动程序的所有方法。我的任务是让我做一个方法,将钱从一个帐户,并存入另一个帐户。我已经知道如何取款和存钱了,只是不知道如何把钱从一个账户转到另一个账户。以下是到目前为止传输方法的代码:

  • 我需要找到向银行账户自动付款的最佳解决方案。我的场景是,我们有一个银行账户的资金(如果需要,可以注册一个像贝宝或条纹提供商帐户)。 当用户提交资金请求时,我需要从我们的银行帐户(或支付提供商帐户)自动将该金额发送到他们的银行帐户。有没有办法实现自动化?它需要能够支持大多数欧洲银行账户。

  • 新手入门 - 账户类型 统计的账户类型分为站长版和客户版两大类型。 站长版账户面向全部注册用户,在百度统计官网直接注册即可。同时,如果您已有联盟、司南等账号,也可以使用该账号直接登录。 客户版账户主要针对百度推广和网盟客户,与百度推广无缝结合,不需任何额外操作即可提供百度推广最细粒度(关键词粒度)的监控数据及报告。推广客户在百度统计首页使用推广账号登录即可。 需要注意的是,如果您已经拥有站长账号,

  • 我在项目中有以下课程: 账户 客户 名称:fName和lName(都是字符串字段) 日期:年、月、日(均为整数字段) 银行:包含账户收款 InputReader:从键盘读取输入 账户对象需要客户对象和期初余额。客户对象需要名称对象和日期对象。Name对象需要名字和姓氏的字符串我需要向用户询问创建Name和Date对象的详细信息,以及期初余额。 我必须通过从用户那里获取相关信息来创建一个新帐户,即它