2012-02-26 18 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

您需要更改'||'爲「& &」