2012-02-26 69 views
0

我在写一个算法,并且我在其中有一个do-while循环。我希望处于该循环中,直到GAP足够小或迭代次数高于1000次为止。但是,它会经过100次迭代并且不会停止。下面是代码:如何在C++中的do-while循环中创建一个/或条件

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); 

回答

2

你错过了逻辑位;)

如果您希望循环结束时,如果(conditionA或conditionB),那么就意味着你要继续循环,如果(conditionA和conditionB )。

换句话说,你应该有

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

+1。或者可以这样写:“我想要进入该循环,直到GAP足够小或迭代次数高于1000”,这意味着while(gap> = 0.05 || iteration> 1000)。 – stinky472 2012-02-26 22:57:03

4

你可能想&&而不是||。你想迭代,直到或者的那些表达式都是假的,因此你想迭代的同时都是它们都是真的。

0

您需要更改'||'为“& &”