Java:嵌套的if语句

Java:嵌套的if语句,java,Java,我有一个if语句来验证用户的输入。例如,我想验证两件事。首先是文本字段是否全部为空。如果其中一个文本字段未填写,则会出现一个弹出窗口。二是密码和确认密码是否相同。当密码和确认密码不相同时,会出现一个弹出窗口。问题是,当两个条件都满足时,两个弹出窗口会连续出现。我喜欢做的是,当这两种情况都发生时,嵌套的if不会触发,而只会触发主if。只有当所有文本字段都已填充且密码和确认密码不匹配时,才会触发嵌套if if(TextField1.getText().isEmpty()||TextField2.ge

我有一个if语句来验证用户的输入。例如,我想验证两件事。首先是文本字段是否全部为空。如果其中一个文本字段未填写,则会出现一个弹出窗口。二是密码和确认密码是否相同。当密码和确认密码不相同时,会出现一个弹出窗口。问题是,当两个条件都满足时,两个弹出窗口会连续出现。我喜欢做的是,当这两种情况都发生时,嵌套的if不会触发,而只会触发主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();
}

这里可能需要if-if-else条件。 尝试类似的方法(代码未经测试)


这里可能需要if-if-else条件。 尝试类似的方法(代码未经测试)


触发第一个弹出窗口后,使用
返回则不会进入第二次验证

JOptionPane.showMessageDialog(null, "Please fill in all the details!",
    "Invalid Input", JOptionPane.ERROR_MESSAGE);
return;

触发第一个弹出窗口后,使用
返回则不会进入第二次验证

JOptionPane.showMessageDialog(null, "Please fill in all the details!",
    "Invalid Input", JOptionPane.ERROR_MESSAGE);
return;

第二个<代码>如果 <代码>,如果,将它移到第一个<代码> > 。考虑将TeXField添加到一个数组中,并重复遍历该数组,以查找它们是否需要所有的细节。您可以用流替换所有空检查:
stream.of(textField1,textField2,…).map(f->f.getText()).findAny().isPresent()
。或者将文本字段放入一个数组或列表中,使用<代码>数组、流(数组)或<代码>列表>流()/代码>分别创建第二个<代码>如果 < <代码>,如果,移动到第一个<代码>之外,如果。考虑将文本字段添加到数组中,并遍历该数组,以确定其中是否有人需要所有详细信息。您可以用流替换所有空检查:
stream.of(textField1,textField2,…).map(f->f.getText()).findAny().isPresent()
。或者将文本字段放入数组或列表中,分别使用
Arrays.stream(array)
list.stream()
创建流。哦,是的,我忘记了这个选项。哦,是的,我忘记了这个选项。