7

銀行取引をシミュレートするプログラムの作成に取り組んでいます。入金、出金、または送金を希望するかどうかをユーザーに尋ねなければなりません。

特定の金額 (たとえば 1000) を入金すると、残高が 1000 であると表示されます。次に、400 のような数字を引き出すように要求すると、残高が -400 と表示されます。結局のところ、残高を確認する必要があるのではないかと考えたところ、600 になるはずの正しい残高が表示されますが、0 と表示されています。たとえば、次のトランスクリプトを参照してください。

出力のスクリーン キャプチャ

私のコード(以下に示す)で残高を= 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!");

    }
}
4

3 に答える 3

10

do{...} while{...} が実行されるたびに、balance=0 を設定しています。ループから外す必要があります。

double balance = 0;

do{
...
于 2013-10-09T14:51:52.373 に答える
3

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

行バランス = 0 を while ループの上に移動します。

于 2013-10-09T14:52:06.353 に答える
3

balanceに設定したループを実行するたびに0doこれをループの外に移動します。

double balance = 0;
double amount;
do {
    /* code */
} while(num != 4);
于 2013-10-09T14:53:18.943 に答える