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