2013-10-09 57 views
7

私は銀行取引をシミュレートするプログラムを作ることに取り組んでいます。私は彼らが預金、引き出し、または移転したいかどうかをユーザーに尋ねなければなりません。私は(たとえば1000)一定の金額を入金すると銀行口座プログラム

、それは私のバランスがその後、私は撤退し、それは私のバランスが-400であると言う400のような番号を尋ねる1000であると言います。私はこの転写産物を参照してください、私は私の残高を確認した後、それは私に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 –

答えて

10

{...}が実行されるたびに、balance = 0に設定されます。あなたはそれをループから取り出してください。

+1

1は – sameday

+0

は、クイックヘルプをありがとうそれに私を打ち負かします!私はそれが軽微なmsitakeであることを知っていた – Morgan

3

doループ内でバランスを0に初期化しているため、毎回ゼロにリセットされます。

whileループ上にラインバランス= 0を移動

3

あなたが0balanceを設定するループを実行するたびに。あなたのdoループの外側にこれを移動:

double balance = 0; 
double amount; 
do { 
    /* code */ 
} while(num != 4); 
関連する問題