再来一次:do-while 循环
R 中的 repeat 循环在 C++ 里称为 do while 循环。与 while 循环相比,它把条件放在循环末尾,因此循环体至少会执行一次。语法如下:
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)
*/