我正在制作一个模拟银行交易的程序。我必须询问用户是否要存款、取款或转账。
当我存入某个金额(例如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!");
}
}发布于 2013-10-09 22:51:52
每次执行do{...} while{...}时,您都在设置balance=0。你应该把它从循环中拿出来。
double balance = 0;
do{
...发布于 2013-10-09 22:52:06
您在do循环中将balance初始化为0,因此每次循环都将其重置为零。
将balance =0行移动到while循环的上方。
发布于 2013-10-09 22:53:19
每次运行循环时,都将balance设置为0。将此代码移到do循环之外:
double balance = 0;
double amount;
do {
/* code */
} while(num != 4);https://stackoverflow.com/questions/19275389
复制相似问题