我有一个if语句,用于验证用户的输入。例如,有两件事我想验证。首先是所有文本字段是否为空。如果未填写文本字段之一,则会显示一个弹出窗口。其次是密码和确认密码是否相同。如果密码和确认密码不同,则会弹出一个对话框。问题是当两个条件都满足时,两个弹出窗口会连续出现。我想做的是两种情况都发生时,嵌套的if不会触发,而只有main if会触发。仅当所有文本字段均已填写且密码和确认密码不匹配时,嵌套的if才会触发。
if(TextField1.getText().isEmpty()||TextField2.getText().isEmpty()||TextField2.getText().isEmpty()
||TextField4.getText().isEmpty()||TextField5.getText().isEmpty()||TextField6.getText().isEmpty()
||TextField8.getText().isEmpty()||TextField9.getText().isEmpty()||TextField10.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Please fill in all the details!",
"Invalid Input", JOptionPane.ERROR_MESSAGE);
if(!TextField4.getText().equals(TextField5.getText())){
JOptionPane.showMessageDialog(null, "Password and Confirm Password is not the same!",
"Invalid Input", JOptionPane.ERROR_MESSAGE);
}
}else{
writetoFile();
}
答案 0 :(得分:1)
您可能在这里需要if-ifelse-else条件。 试试这样的东西(未经测试的代码)
if(TextField1.getText().isEmpty()||TextField2.getText().isEmpty()||TextField2.getText().isEmpty()
||TextField4.getText().isEmpty()||TextField5.getText().isEmpty()||TextField6.getText().isEmpty()
||TextField8.getText().isEmpty()||TextField9.getText().isEmpty()||TextField10.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Please fill in all the details!",
"Invalid Input", JOptionPane.ERROR_MESSAGE);
} else if(!TextField4.getText().equals(TextField5.getText())){
JOptionPane.showMessageDialog(null, "Password and Confirm Password is not the same!",
"Invalid Input", JOptionPane.ERROR_MESSAGE);
}else{
writetoFile();
}
答案 1 :(得分:1)
触发第一个弹出窗口后,使用return;
,然后将不进行第二次验证。
JOptionPane.showMessageDialog(null, "Please fill in all the details!",
"Invalid Input", JOptionPane.ERROR_MESSAGE);
return;