Reputation: 133
I am working on making a program to simulate bank transactions. I have to ask the user if they want to deposit, withdrawal, or transfer.
When I deposit a certain amount (for example 1000), it says my balance is 1000. Then I ask to withdrawal a number like 400 it says my balance is -400. After all that I thought maybe I have to check my balance and then it will give me the correct balance of what should be 600, but it says 0. For instance, see this transcript:
I was thinking because in my code (shown below) I made the balance = 0 but if I take the = 0 away and try to run the program it says it needs to be initialized.
I am stuck and I want to figure it out. Please don't post the entire code corrected. I want to fix it myself and learn!
import java.util.Scanner;
public class BankTransactions {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
do {
double balance = 0;
double amount;
System.out.println("Type Number");
System.out.println("1. Deposit");
System.out.println("2. Withdrawal");
System.out.println("3. Balance");
System.out.println("4. Exit");
num = scan.nextInt();
if (num == 1) {
System.out.println("Enter amount to deposit: ");
amount = scan.nextDouble();
// Add the amount to the balance
balance += amount;
System.out.println("Your balance is");
System.out.println(balance);
} else if (num == 2) {
System.out.println("Enter amount to withdrawal: ");
amount = scan.nextDouble();
// Remove the amount from the balance
balance -= amount;
System.out.println("Your balance is");
System.out.println(balance);
} else if (num == 3) {
System.out.println("Your Balance");
System.out.println(balance);
}
} while (num != 4);
System.out.println("Good Bye!");
}
}
Upvotes: 7
Views: 12087
Reputation: 7521
Every time you run the loop you set balance
to 0
. Move this to outside your do
loop:
double balance = 0;
double amount;
do {
/* code */
} while(num != 4);
Upvotes: 3
Reputation: 2962
You are initializing balance to 0 within the do loop, so it resets to zero each time around.
Move the line balance = 0 to above the while loop.
Upvotes: 3
Reputation: 1176
Every time the do{...} while{...} is executed, you are setting balance=0. You should take it out the loop.
double balance = 0;
do{
...
Upvotes: 10