我正在写一个算法,我有一个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);
答案 0 :(得分:4)
您可能需要&&
而不是||
。您希望迭代直到这些表达式的为假,因此您希望在它们的两个都为真时进行迭代。
答案 1 :(得分:2)
你错过了一点逻辑;)
如果你希望循环结束if(conditionA或conditionB),那么就意味着你想继续循环if(conditionA AND conditionB)。
换句话说,你应该
while(GAP>=0.05 && iteration<=1000)
答案 2 :(得分:0)
您需要更改'||'到'&amp;&amp;'