银行账户计划
问题描述:
我正在制作一个模拟银行交易的程序。我必须询问用户是否要存款,取款或转账。银行账户计划
当我存入一定数量(例如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!");
}
}
答
您在do循环内将balance初始化为0,所以它每次都重置为零。
将行平衡= 0移动到while循环上方。
答
每次运行循环时,您都将balance
设置为0
。移动给你的do
外循环:
double balance = 0;
double amount;
do {
/* code */
} while(num != 4);
切勿使用浮点类型来表示货币:http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent -currency –