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