2 do while循环中带OR的语句

时间:2015-06-23 14:36:17

标签: java loops do-while

如果Do While为0或时间为60 pulls,我想结束此sek循环。

但如果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);

2 个答案:

答案 0 :(得分:1)

您想使用and而不是or,请注意while循环,如果条件的计算结果为true,则会继续循环,但不会结束。

所以实际上你的条件是 - 而其中一个(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);

答案 1 :(得分:0)

你的逻辑错误了:

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