開始使用免費開始

再做一次:do-while 迴圈

R 裡的 repeat 迴圈在 C++ 中稱為 do while 迴圈。與 while 迴圈相比,它把條件放在迴圈的最後,因此迴圈內容至少會執行 1 次。語法如下:

do {
  // Do something
} while(condition);

請注意 while 條件後面的分號。

本練習屬於課程

用 Rcpp 最佳化 R 程式碼

檢視課程

練習說明

  • do 敘述開始迴圈。
  • 指定 while 條件,讓當 is_good_enough 的值為 false 時,迴圈持續執行。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

#include 
using namespace Rcpp;

// [[Rcpp::export]]
double sqrt_approx(double value, double threshold) {
    double x = 1.0;
    double previous = x;
    bool is_good_enough = false;
    
    // Initiate do while loop
    ___ {
        previous = x;
        x = (x + value / x) / 2.0;
        is_good_enough = fabs(x - previous) < threshold;
    // Specify while condition
    } ___
    
    return x;
}

/*** R
sqrt_approx(2, 0.00001)
*/
編輯並執行程式碼