我是编码的新手,我需要一些帮助。我在过去的3天里尝试过这段代码,我无法让它工作,所以非常感谢任何帮助。我在代码中间遇到了很多错误,我不确定原因。
class Account extends JPanel {
public Account(ATMBuilder frame) {
guiBuilder = frame;
static void setIsSavings() {
if(checkingRadio == checkingBtn) {
isSavings= false;
}else(checkingRadio == savingsBtn) {
isSavings =true;
}
}
}
Object command = e.getSource();
public void MyAccount(ATMBuilder frame) {
double resultsCalc =0;
double result = Math.round(result*1000000)/1000000;
if(isSavings==false) {
resultTxt.setText(String.valueof((int)Math.floor(result)));
}
else if(isSavings==true) {
resultTxt.setText(String.valueof((int)Math.floor(result)));
}
else if (command == resetButton) {
withdrawAmount.setText("");
depositAmount.setText("");
transferToAmount.setText("");
balanceAmount.setText("");
resultTxt.setText("");
}
else if (command == acceptButton) {
try {
fundsAvalable = Double.parseDouble(funds.getText());
}catch (Exception ex) {
funds.setText("Invalid Amount of Funds");
return;
}
}
}
//resultsCalc(funds);
private void resultsCalc(double funds) {
funds.setText(String.valueOf(funds));
double amount = 0;
try {
amount = Double.parseDouble(withdarawAmount.getText());
}catch (Exception ex) {
funds.setText("Invalid Amount");
return;
}
}
}
正如您所看到的,我遇到了一些严重问题。我需要确保所有提款都来自支票或储蓄账户。我不断得到"而不是声明"或"';'预期的错误。错误发生在第一个和第二个if / else if语句周围。任何帮助将不胜感激。
答案 0 :(得分:0)
1-首先,您可以在下面调整此方法,使其更短,更准确:
从这个:
static void setIsSavings() {
if(checkingRadio == checkingBtn) {
isSavings= false;
} else(checkingRadio == savingsBtn) {
isSavings = true;
}
}
对此:
static void setIsSavings() {
isSavings = checkingRadio.equals(savingsBtn);
}
2-接下来,此块将导致您流程中的主要问题:
if(isSavings==false) {
resultTxt.setText(String.valueof((int)Math.floor(result)));
} else if(isSavings==true) {
resultTxt.setText(String.valueof((int)Math.floor(result)));
}
您不应将布尔变量与false或true进行比较。 您可以将其转换为:
if(isSavings) {
resultTxt.setText(String.valueof((int)Math.floor(result)));
} else {
resultTxt.setText(String.valueof((int)Math.floor(result)));
}
再进一步,我们可以看到if和else执行相同的确切代码,因此我们可以完全摆脱if / else结构:
resultTxt.setText(String.valueof((int)Math.floor(result)));
然后,由于您要依次比较false和true,因此不会执行其他elseif。 您可能应该从行中删除else: 来自:
else if (command == resetButton) {
收件人:
if (command == resetButton) {
由于我们在进行此操作,因此请勿将非原始类型的对象与==进行比较,因为这在许多情况下将不起作用。您可以为此使用equals方法:
if (command.equals(resetButton)) {
....
最后但并非最不重要的一点,请务必查看有关如何格式化源代码的Java样式指南,我强烈建议您使用Google Java样式指南。您可以下载一个XML文件,该文件可以安装在IDE(Intellij或Eclipse)上,并且每次保存文件时都会自动为您设置代码格式。 https://google.github.io/styleguide/javaguide.html