如何在c++中的do-while循环中具有非此即彼条件

how to have an either/or condition in a do-while loop in c++

本文关键字:非此即彼 条件 循环 do-while c++ 中的      更新时间:2023-10-16

我正在写一个算法,其中有一个do while循环。我想在这个循环中,直到GAP足够小或迭代次数超过1000。但它通过了100次迭代,并且没有停止。这是代码:

int iteration=1;
double UB=0;
double LB=0;
double GAP=1;
do
{...
    GAP=abs((UB-LB)/LB);
    iteration++;
}while(GAP>=0.05 || iteration<=1000);

您可能想要&&而不是||。您希望迭代,直到这些表达式中的任一个为false,因此您希望在它们都为true时进行迭代。

您有点错过了逻辑;)

如果您希望循环结束If(conditionA或conditionB),那么这意味着您希望继续循环If(condition A AND condition B)。

换句话说,你应该有

while(GAP>=0.05 && iteration<=1000)

您需要将'||'更改为'&amp;'