Java:嵌套if语句

时间:2020-11-02 11:27:21

标签: java

我有一个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();
}

2 个答案:

答案 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;