现在我正在开展一个ATM
项目。
用户将输入他们的姓名,余额,交易类型和交易金额。交易类型为Withdraw (W)
,Deposit (D)
和R (Report)
,我使用switch
,其中3 cases
W
,{{1} },D
。如果您输入错误的代码,您没有足够的资金来执行您选择的交易类型,并且您输入的金额为负数,程序将输出错误。现在我难以设法R
。我的代码如下,任何帮助将不胜感激!感谢
switch
答案 0 :(得分:1)
您可以在开关体内写下如下情况。你可以进一步延长条件,但在这里我只是给你一个如何做的例子。如果字符不是D,W或R,则将执行默认情况。
switch (code) {
case 'D':
balafter = balbefore + transamount;
System.out.println("");
if (balafter < 0) {
pw.println("Insufficent funds");
} else if (balafter < 300) {
pw.println("Warning, balance below $300");
}else{
pw.println("Well. You have now " + balafter + "$");
}
break;
case 'W':
balafter = balbefore - transamount;
if (transamount > balbefore) {
pw.println("Sorry. You don't enough funds.");
} else if (transamount <= balbefore && balafter < 300) {
pw.println("Warning, balance below $300");
} else {
pw.println("The withdrawl was successful.");
}
break;
case 'R':
balafter = balbefore + transamount;
if (balafter < 0) {
pw.println("Insufficent funds");
} else if (balafter < 300) {
pw.println("Warning, balance below $300");
} else {
pw.println("Good. Your balance is " + balAfter);
}
break;
default:
System.out.println("Nothing to do.");
break;
}
答案 1 :(得分:0)
你快到了!在每个案例之后,您需要跟进break;
并转到下一个case
。在最后,你需要有一个default: break
,它转换为“如果变量不适合任何情况,那么就打破开关”。
所以切换的工作原理如下:
switch(code) {
case 'D':
// do deposit code
break;
case 'W':
// do withdrawl code
break;
...
default:
break;
}
Switch具有不同的语法,因为它没有花括号来定义代码块。它代之以break;
以及以下case:
或default:
继续前进。
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html有很好的例子供您使用。
评论后修改:
在回复您的评论时,您需要执行以下操作:
case 'W':
tempBal = balbefore - transamount;
if(tempBal < 0) {
System.out.println("Insufficient Funds");
}
else {
balafter = balbefore - transamount;
if(balafter < 300) {
System.out.println("Warning, balance below $300");
}
}
break;
...
default:
System.out.println("Please select "D", "W", or "R");
break;