我想撰寫一個for回圈來迭代 a vectoror list,我在每次迭代中向它們添加值。我想出了以下代碼,它的迭代次數不超過 1 次。我不想使用while回圈來撰寫這個程式。我想知道如何控制 for 回圈迭代器。提前致謝。
steps <- 1
random_number <- c(sample(20, 1))
for (item in random_number){
if(item <18){
random_number <- c(random_number,sample(20, 1))
steps <- steps 1
}
}
print(paste0("It took ", steps, " steps."))
uj5u.com熱心網友回復:
這實際上取決于您想要實作的目標。無論哪種方式,恐怕您都無法即時更改迭代器。while在這種情況下似乎是合理的,或者也許知道合理的最大迭代次數,您可以繼續進行這些操作,并通過 if 陳述句處理不必要的迭代。根據您的代碼,更像是:
steps <- 1
for (item in 1:100){
random_number <- c(sample(20, 1))
if(random_number < 18){
random_number <- c(random_number,sample(20, 1))
steps <- steps 1
}
}
print(paste0("It took ", steps, " steps."))
老實說,這while()與結合 if 陳述句以確保它不會永遠運行并沒有什么不同。
uj5u.com熱心網友回復:
這是做不到的。for回圈中使用的向量在回圈開始時進行評估,對該向量的任何更改都不會影響回圈。您將不得不使用while回圈或某種其他型別的迭代。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/352907.html
上一篇:Python:回圈索引問題
