银行账户计划

问题描述:

我正在制作一个模拟银行交易的程序。我必须询问用户是否要存款,取款或转账。银行账户计划

当我存入一定数量(例如1000)时,它说我的余额是1000.然后我要求提取一个像400这样的数字它说我的余额是-400。一切,我想,也许我要检查我的天平再经过它会给我的应该是什么600的正确平衡,但它说0。举例来说,看到这个成绩单:

screen capture of output

我思考,因为在我的代码(如下所示)我做了平衡= 0,但如果我把= 0,并尝试运行该程序它说,它需要进行初始化。

我被卡住了,我想弄明白。请不要发布更正的整个代码。我想自己解决并学习!

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

    } 
} 
+8

切勿使用浮点类型来表示货币:http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent -currency –

每当do {...} while {...}被执行时,您正在设置balance = 0。你应该把它带出循环。

double balance = 0; 

do{ 
... 
+1

+1击败我吧 – sameday

+0

感谢您的快速帮助!我知道这将是微小的msitake – Morgan

您在do循环内将balance初始化为0,所以它每次都重置为零。

将行平衡= 0移动到while循环上方。

每次运行循环时,您都将balance设置为0。移动给你的do外循环:

double balance = 0; 
double amount; 
do { 
    /* code */ 
} while(num != 4);