else语句即使遇到语句也会继续执行

时间:2019-12-14 08:00:21

标签: java if-statement

我正在使用Java进行工作,在代码中遇到了麻烦,我有多个if语句和一个else。尽管if语句为true,else语句仍然执行。我整天都在遇到这种情况,但似乎找不到错误。如果有人可以帮助

private void confirmActionPerformed(java.awt.event.ActionEvent evt) {                                       

    if(lname1.getText().equals("")){
         lname_ver1.setText("Field is empty!");

     }
    if (mname1.getText().equals("")){
        mname_ver1.setText("Field is empty!");

    }
    if(fname1.getText().equals("")){
       fname_ver.setText("Field is empty!");

    }
     if(s_age.getSelectedIndex()== 0){
     age_ver.setText("Field is empty!");
    }
    if(!female_button.isSelected()&& !male_button.isSelected()){
    gender_ver1.setText("Select gender!");
    }
    if(month.getSelectedIndex()==0 && day.getSelectedIndex()==0 && year.getSelectedIndex()==0){
            birth_ver1.setText("Field is empty!");
            }

    if (s_num.getText().equals("")){
          num_ver.setText("Field is empty!"); 

    }


     if(!email.getText().matches("\"^[a-zA-Z0-9]+[@]+[a-zA-Z0-9]+[.]+[a-zA-Z0-9]+$")){
       email_ver1.setText("Invalid email!");
     }
     if(email.getText().equals("")){
        email_ver1.setText("Field is empty!");

     if(fathers_name.getText().equals("")){
        father_ver1.setText("Field is empty!")
    }
     if(mothers_name.getText().equals("")){
     mother_ver1.setText("Field is empty!");   
    }
     if(parent_no.getText().equals("")){
     no_verify1.setText("Field is empty!");  
     }
     if(parent_no.getText().contains("[a-zA-Z]")){
         no_verify1.setText("Field is empty!");
     }

     if (s_nat.getText().equals("")){
      nat_ver.setText("Field is empty!");
     }
     if(!single.isSelected() && married.isSelected()){
            nat_ver.setText("Select status!!");
     }



   else
    {
        JOptionPane.showMessageDialog(null, "SUCCESS", "INFO    ", JOptionPane.INFORMATION_MESSAGE);
        dispose();
        Schedule sched = new Schedule();
        sched.setLocationRelativeTo(null);
        sched.setResizable(false);
        sched.setVisible(true);
    }`

2 个答案:

答案 0 :(得分:0)

1)请检查支架的开合是否完全符合您的要求。     2)如果是其他格式...     如果{}     否则{}     否则{}     其他{}      在这种格式下,如果else之前的任何条件有效,则else不会执行,但是您的情况与

if{}
if{}
if{}
if{}
.
.
.
.
if{}  ----//last if
else{}

so in this case, else is applicable only for the last if, so when last if fails, it goes for else, and the if conditions which are mentioned before that doesn't have any relation with else.

答案 1 :(得分:0)

所有if语句彼此独立。 else仅属于最后一个if语句。如果选择了单身或已婚,它将被执行。其他条件无关紧要。

我认为,您的意图是评估用户输入。您想向每个无效输入添加一条错误消息,并且仅在所有内容都有效的情况下继续操作。如果这是您想要的,那么有一个简单的解决方案:

private void confirmActionPerformed(java.awt.event.ActionEvent evt) {
  boolean valid = true;

  if (lname1.getText().equals("")) {
    lname_ver1.setText("Field is empty!");
    valid = false;
  }
  if (mname1.getText().equals("")) {
    mname_ver1.setText("Field is empty!");
    valid = false;
  }
  ...
  if (valid) {
    JOptionPane.showMessageDialog(null, "SUCCESS", "INFO    ", JOptionPane.INFORMATION_MESSAGE);
    dispose();
    Schedule sched = new Schedule();
    sched.setLocationRelativeTo(null);
    sched.setResizable(false);
    sched.setVisible(true);
  }
}

并保持平衡,查看语句if(email.getText().equals("")){