2 在 do while 循环中使用 OR 的语句

2 Statements with OR in a do while loop

如果 pulls 为 0 或时间为 60 sek

,我想结束此 Do While 循环

但如果 pulls 为 0,则循环不会停止。

do{

    try
    {
        Thread.sleep(1000);
        sek++;
        System.out.println(sek);
    }
    catch(Exception e)
    {
        System.out.println(e);
    }

    db = new BdsPostgres( );
    db.select(Result.SET_1, "SELECT * FROM connection_overview WHERE leitung="+leitung+" AND  status='pull' ");
    db.naechsterDatensatz(Result.SET_1);

    anzahlPulls = db.leseZeilen(Result.SET_1);
    db.schliessen();

} while (anzahlPulls != 0 || sek != 60);

您想使用 and 而不是 or ,请注意在 while 循环中如果条件为真,它会继续循环,而不是结束它。

所以实际上您的条件读作 - 而(anzahlPulls 不为零)或(sek 不为 60)继续循环。 (即当其中一个条件为真时继续循环)

您实际上想使用 and - 同时(anzajlPulls 不为零)和(sek 不为 60)继续循环。 (即当其中一个条件变为假时打破循环)

示例代码-

do{

            try
            {
                Thread.sleep(1000);
                sek++;
                System.out.println(sek);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }

            db = new BdsPostgres( );
                db.select(Result.SET_1, "SELECT * FROM connection_overview WHERE leitung="+leitung+" AND  status='pull' ");  
                db.naechsterDatensatz(Result.SET_1);

                anzahlPulls = db.leseZeilen(Result.SET_1);
            db.schliessen();

        }while (anzahlPulls != 0 && sek != 60);

你的逻辑错了:

不是(A 或 B)=(不是 A)和(不是 B)