我正在制作一个模拟银行交易的程序。我必须询问用户是否要存款,取款或转账。
当我存入一定金额(例如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!");
}
}
答案 0 :(得分:10)
每次执行{...}而{...}时,您设置的是balance = 0。你应该把它拿出来。
double balance = 0;
do{
...
答案 1 :(得分:3)
您正在do循环中将balance初始化为0,因此每次都会重置为零。
将行余额= 0移动到while循环上方。
答案 2 :(得分:3)
每次运行循环时,都会将balance
设置为0
。将其移至do
循环之外:
double balance = 0;
double amount;
do {
/* code */
} while(num != 4);