0
我來自C背景,所以我假設我的語法不正確。嵌套如果語句失敗
在下面的代碼中;
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String jcbValue = (String) jcbIDF.getSelectedItem();
if (jcbValue.equals("Insert")) {
String Id = jtfId.getText();
ArrayList<String> ValueList = new ArrayList<String>();
String Name = jtfName.getText();
String GPA = jtfGPA.getText();
ValueList.add(Name);
ValueList.add(GPA);
if (map.containsKey(Id)){
JOptionPane.showMessageDialog(null, "Key exists!",
"Result", JOptionPane.INFORMATION_MESSAGE);
}
else if (!map.containsKey(Id)){
map.put(Id, ValueList);
System.out.println(map);
JOptionPane.showMessageDialog(null, "Record inserted",
"Result", JOptionPane.INFORMATION_MESSAGE);
jtfId.setText("");
jtfName.setText("");
jtfGPA.setText("");
}
} //terminates insert
else if (jcbValue.equals("Delete")) {
String Id = jtfId.getText();
ArrayList<String> ValueList = new ArrayList<String>();
String Name = jtfName.getText();
String GPA = jtfGPA.getText();
if (map.containsKey(Id)){
JOptionPane.showMessageDialog(null, "Key exists, deleted!",
"Result", JOptionPane.INFORMATION_MESSAGE);
} else if (!map.contasKey(Id)){
System.out.println(map);
JOptionPane.showMessageDialog(null, "Key Does not exist!",
}
} //terminates delete
else if (jcbValue.equals("Find")) {
System.out.println(map);
JOptionPane.showMessageDialog(null,
"Find Selected; But not Implemented", "Result",
JOptionPane.INFORMATION_MESSAGE);
} //terminates find
}// Terminates actionPerformed Class
}// Terminates ButtonListenerClass
我收到編譯錯誤說:「}上線X上,過早的EOF意外。如果我刪除evalute map.containsKey子國際單項體育聯合會(同上),它編譯並運行正常。我的一切在互聯網上閱讀說Java是能夠嵌套IF語句,那麼究竟什麼是我做錯了嗎?
感謝您的幫助!
CJ
感謝Brian的快速反應。你是否對它進行了抽查,並且知道問題是什麼,或者你是否使用了某種類型的調試器? – CryptoJones
點檢查它。 「Unexpected}」意味着當它期待別的東西時,它得到了一個},所以我只是看看每個之前的內容,直到找到問題代碼。像Eclipse這樣的IDE應該強調這種問題。 –