在我放置if(userChoice == 0)
之前,它可以正常编译且没有错误。但这是将用户选择设置为无论他们是否单击提款按钮,都始终进行存款。我需要弄清楚如何将userChoice初始化为键盘输入。我尝试了userChoice = ();
也不起作用。
这是唯一一个可行的if语句...但是接下来我的下一个if语句if(userChoice ==1)
仍要存入。??
int userChoice;
String[] menuItems = {"Deposit", "Withdrawal", "Print Account Information", "Exit"};
int selection;
selection = JOptionPane.showOptionDialog(null,
"Please choose an item",
bankAccount,
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
menuItems,
"Deposit");
System.out.println(selection);
if (userChoice == 0) {
depositStr = JOptionPane.showInputDialog("Enter your deposit amount: $");
deposit = Double.parseDouble(depositStr);
initialBalance = initialBalance + deposit;
selection = JOptionPane.showOptionDialog(null, "Please choose an item",
bankAccount,
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
menuItems,
"Deposit");
System.out.println(selection);
}
然后我有更多其他if语句,如else if(userChoice == 1)(1 aka提款)...永远不会使人打到1
我还有更多if else语句。很难在这里保持4个空格的间距。我唯一的编译问题是它说var userChoice未初始化。
答案 0 :(得分:0)
您似乎将userChoice
与selection
混淆了,在这种情况下,这是完全相同的。因为您永远不会设置userChoice
的值,所以它总是会存入的,因此,如果初始化为0,它将始终为0 ...
JOptionPane.showOptionDialog
将返回所选项目的索引。
因此,您需要这种结构并删除userChoice
int selection = JOptionPane.showOptionDialog(... , menuItems, ...);
System.out.printf("You selected %s at position %d%n", menuItems[selection], selection);
if (selection == 0) {
} else if (selection == 1) {
}