Java 我一直在用嵌套的if在for循环中得到一个无限循环

Java 我一直在用嵌套的if在for循环中得到一个无限循环,java,sql,database,swing,jframe,Java,Sql,Database,Swing,Jframe,这是我的while循环,大的一个,然后我们有一个for循环和一个嵌套的if,如果问题是if中的代码继续循环并使程序崩溃。当我运行我的代码并添加一个现有的id号来验证它时,它会不断发送错误消息,指出它存在,我无法确定循环的问题在哪里 while (exist>=0){ exist=0; for(int i=0; i<idArr.length; i++){ if(AddID.getText().equals(idArr[i])){

这是我的while循环,大的一个,然后我们有一个for循环和一个嵌套的if,如果问题是if中的代码继续循环并使程序崩溃。当我运行我的代码并添加一个现有的id号来验证它时,它会不断发送错误消息,指出它存在,我无法确定循环的问题在哪里

while (exist>=0){
    exist=0;
    for(int i=0; i<idArr.length; i++){
        if(AddID.getText().equals(idArr[i])){
            exist=1;
            JOptionPane.showMessageDialog(null, "ID already exists!", "Clinic System", JOptionPane.ERROR_MESSAGE);
            AddID.setText("");               
            addName.setText("");
            DOBADD.setText("");
            Address.setText("");                              
            PhoneNum.setText("");
            GenderAdd.setText("");
            break;                                
        }                            
    }
    if(exist==0) {
        try{    
        myconn = DriverManager.getConnection(url, user, password);
        //mystatShop = myconShop.createStatement();
        //myresShop = mystatShop.executeQuery("INSERT INTO patient_test VALUES (?, ?)");
        String SQL= "INSERT INTO PATIENT_INFO  VALUES (?,?,?,?,?,?)";
        PreparedStatement pstate = myconn.prepareStatement(SQL);
        pstate.setString(1,AddID.getText());
        pstate.setString(2, addName.getText());
        pstate.setString(3, DOBADD.getText());
        pstate.setString(4, Address.getText());                             
        pstate.setString(5, PhoneNum.getText());
        pstate.setString(6, GenderAdd.getText());

        pstate.executeUpdate();
        JOptionPane.showMessageDialog(null,"Insertion Successful");
        AddID.setText("");               
        addName.setText("");
        DOBADD.setText("");
        Address.setText("");
        GenderAdd.setText("");
        PhoneNum.setText("");

        myconn.close();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
        break;
    }
}
while(存在>=0){
存在=0;

对于(inti=0;iwhile参数表示
while(exist>=0)

所以根据代码,exist值总是等于或大于0。所以循环永远不会结束。
这样说
while(存在>0)


另外,我看不出使用嵌套循环的理由。您可以仅使用for循环遍历数组。

while参数表示
while(exist>=0)

所以根据代码,exist值总是等于或大于0。所以循环永远不会结束。
这样说
while(存在>0)


我也看不到使用嵌套循环的理由。您可以仅使用for循环遍历数组。

这样做了,但仍然不断发出错误消息JOptionPane.showMessageDialog(null,“ID已存在!”,“Clinic System”,JOptionPane.error\u消息);我尝试初始化exist=1和0,但仍然存在相同的错误为什么需要嵌套循环?正如我看到的,不需要while循环。只需使用for循环一次idArr[]数组。谢谢,我删除了while循环,它成功地识别了它,但仍然不断发出错误消息JOptionPane.showMessageDialog(null,“ID已存在!”,“Clinic System”,JOptionPane.ERROR_MESSAGE);我尝试初始化exist=1和0,但仍然存在相同的错误为什么需要嵌套循环?正如我看到的,while循环不需要。只需使用for循环一次通过idArr[]数组即可。谢谢我删除了while循环,它工作正常