Kom igångKom igång gratis

Kör igen: do-while-slinga

repeat-slingan i R kallas do-while-slinga i C++. Jämfört med en while-slinga flyttas villkoret till slutet av slingan, vilket garanterar att slingans innehåll körs minst en gång. Syntaxen ser ut så här:

do {
  // Gör något
} while(condition);

Observera semikolonet efter while-villkoret.

Den här övningen är en del av kursen

Optimera R-kod med Rcpp

Visa kurs

Övningsinstruktioner

  • Inled slingan med en do-sats.
  • Ange while-villkoret så att slingan fortsätter iterera så länge värdet på is_good_enough är falskt.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

#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)
*/
Redigera och kör kod