2014-07-08 76 views
0

如何在條件滿足的情況下結束for循環?如果滿足條件,則結束循環

例如,我想打破一個for循環,例如,但現在我只是在for循環中打破if語句。

t = 0 
x = matrix() 
for (i in 1:10){ 
    if (t == 1){ 
     break } 
    t = t + 0.01 
    x[i] = t 
} 
+0

這裏有一個答案http://stackoverflow.com/questions/6082655/r-break-for-loop – Alex

回答

4

假設你的意思是,for (i in 1:101),因爲.01不能精確二進制表示你不會得到在循環等於1的值。

與改性for說法,100'th值並不完全等於1:

x[100] - 1 
## [1] 6.661338e-16 

要突破的東西時,「大於或等於」另一個值,你可以使用>=。也就是說,將測試修改爲if (t >= 1) { break }。通常,您不應該使用==來比較浮點數。

+0

我很抱歉設置一個任意的例子是不正確的。但我認爲我的觀點很清楚。如果變量超過或等於某個值,我該如何跳出for循環 – user3141121

+1

您的代碼已經正確,它是錯誤的示例數字。試用整數。 – JeremyS