繁体   English   中英

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

[英]2 Statements with OR in a do while loop

我想结束这种Do While循环,如果在pulls是0或者时间是60 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);

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

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

您实际上想要使用and - while(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);

你的逻辑错了:

NOT (A OR B) = (NOT A) AND (NOT B)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM