Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

If statement is being missed in Bank Account Class?

I am having some issues with the following syntax.

I am currently learning Java and have been going through a past exam paper to help build my knowledge of Java.

Here is the question:

Write a class Account that has instance variables for the account number and current balance of the account. Implement a constructor and methods getAccountNumber(), getBalance(), debit(double amount) and credit(double amount). In your implementations of debit and credit, check that the specified amount is positive and that an overdraft would not be caused in the debit method. Return false in these cases. Otherwise, update the balance.

I have attempted to do this HOWEVER, I have not implemented the boolean functions for debit and credit methods. I just wanted to build the program first and attempt to get it working. I was going to look at this after as I was not sure how to return true or false whilst also trying to return an amount from the said methods.

Please forgive any errors in my code as I am still learning Java.

I can run my code, but when I enter deposit it does not seem to work correctly and I would appreciate any pointers here please.

Here is my code:

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);

}
}

Again please forgive any errors in my code. I am still learning its syntax.

like image 727
PrimalScientist Avatar asked May 13 '13 10:05

PrimalScientist


People also ask

What happens if there is a mistake on a bank statement?

If you feel your bank account has a mistake on it, you must follow these procedures to be legally protected: Write or call your financial institution within 60 days of discovering the mistake and describe the error. The financial institution is then required to investigate the error and resolve it within 45 days.

What does a bank statement have to show?

A bank statement is a document from the bank that covers a specific time period, usually a month, that shows all the activity on your account for a time period. The activity shown on your bank statement includes information such as processed deductions and deposits, your average daily balance, and any interest earned.

Why is my bank account showing invalid?

Generally as a result of the incorrect account details or changes made following bank mergers, acquisitions or restructuring.


1 Answers

In the if-statement if(userInput == withdraw) you are attempting to compare String objects.

In Java to compare String objects the equals method is used instead of the comparison operator ==

if(userInput.equals(withdraw))

There are several instances in the code that compares String objects using == change these to use equals.

Also when using conditional blocks it is best to surround the block with braces {}

if(true){

}
like image 107
Kevin Bowersox Avatar answered Oct 13 '22 19:10

Kevin Bowersox