Les boucles cor­res­pon­dent à l’un des concepts de base de la pro­gram­ma­tion. Elles per­met­tent de répéter l’exécution de certains extraits de code, et ce, sous une condition donnée. Avec les boucles while dans R, une section de programme spé­ci­fique se répète jusqu’à ce que la condition pré­cé­dem­ment définie ne soit plus remplie.

À quoi servent les boucles while dans R ?

Les boucles while sont utilisées pour exécuter du code de programme de manière répétée, sur la base d’une condition. Si cette condition est remplie, alors le code contenu dans le bloc de la boucle while est exécuté.

Dans le cadre de la pro­gram­ma­tion en R, les boucles sont souvent utilisées pour itérer sur des éléments d’une liste en R, puis exécuter des opé­ra­tions par­ti­cu­lières pour chaque élément de cette liste, de manière distincte. Par exemple, à partir d’une liste de Strings en R, chaque String peut être affichée à l’écran. Toutefois, les while loops dans R per­met­tent également d’exécuter du code en fonction d’une condition. De plus, les boucles comme la while loop servent de base à l’im­plé­men­ta­tion d’al­go­rithmes de tri po­pu­laires, qui servent à classer un ensemble de données selon des critères par­ti­cu­liers.

Structure et syntaxe des while loops dans R

La syntaxe des while loops dans R est semblable à la structure des boucles while présentes dans la majorité des autres langages de pro­gram­ma­tion. Dans l’en-tête de la boucle, bien entendu introduit par le mot-clé while, la condition apparaît entre pa­ren­thèses. Celle-ci doit être respectée pour que le reste de la boucle s’exécute. Le corps de la boucle est en fait un simple bloc de code distinct, qui vient juste après l’en-tête de la boucle et qui est entouré d’accolades.

Vous voulez vous faire une idée plus précise de la syntaxe ? Un exemple peut vous y aider. Ci-dessous, l’exemple de loop dans R porte sur une boucle while affichant les valeurs allant de 1 à 10 :

x <- 1
while (x <= 10) {
    print(x)
    x <- x + 1
}
R

Exemple : tri à bulles avec R

Le tri à bulles compte parmi les al­go­rithmes de tri clas­siques. Il est utilisé pour trier dans l’ordre croissant les éléments d’un vecteur en R ou d’un tableau en R. Dans le cadre de cet al­go­rithme de tri, une boucle while est utilisée pour exécuter le code relatif au tri jusqu’à ce que l’ensemble des éléments du vecteur soient triés :

bubblesort <- function(x) {
    swapped <- TRUE
    n <- length(x) - 1
    while (swapped) {
        swapped <- FALSE
        for (i in 1:n) {
            if (x[i] > x[i+1]) {
                tmp <- x[i]
                x[i] <- x[i+1]
                x[i+1] <- tmp
                swapped <-TRUE
                }
        }
    }
    return(x)
}
R

Dans le code ci-dessus, une fonction en R du nom de bub­ble­sort est créée. Celle-ci permet de trier dans l’ordre croissant un vecteur numérique. La boucle while est alors utilisée pour la procédure d’échange es­sen­tielle dans le cadre du tri à bulles, et ce, jusqu’à ce que le tri soit terminé.

In­ter­rompre une while loop dans R

Pour in­ter­rompre avant la fin une while loop selon une certaine condition, il est possible d’utiliser le mot-clé « break ». Celui-ci permet d’in­ter­rompre la boucle et de faire en sorte qu’elle ne re­com­mence plus. Pour que vous com­pre­niez mieux ce principe, voici un exemple d’uti­li­sa­tion du mot-clé « break » :

x <- 10
while (x >= 0) {
    print(x)
    if (x == 5) {
        break
        }
        x <- x - 1
}
R

Ci-dessus, la boucle affiche à l’écran les nombres allant de 10 à 5. Une fois que la variable « x » parvient à la valeur « 5 », la condition « if » est exécutée en R, et la boucle est in­ter­rom­pue avant la fin grâce à l’appel du mot-clé « break ».

Autres boucles dans R

La while loop dans R n’est pas la seule forme de boucle qui existe dans R ; vous pouvez également utiliser la boucle for, souvent vue comme un type de boucle de comptage, de même que la boucle repeat, si vous souhaitez exécuter un code à plusieurs reprises, in­dé­pen­dam­ment de toute condition. Il convient d’in­ter­rompre les boucles repeat à l’aide du mot-clé « break », sans quoi ces dernières n’auraient jamais de fin.

Boucle for dans R

Les boucles for sont utilisées lorsque le nombre d’ité­ra­tions de la boucle est connu au préalable. Le nombre d’ité­ra­tions est précisé de façon explicite dans l’en-tête de la boucle. Vous trouverez ci-dessous un exemple de boucle for affichant les chiffres de 1 à 5 :

for (z in 1:5) {
print(i)
}
R

Boucle repeat dans R

Les repeat loops dans R sont utilisées pour exécuter un code à plusieurs reprises, in­dé­pen­dam­ment de toute condition. Si vous avez déjà appris à pro­gram­mer, vous con­nais­sez sans doute les do while loops utilisés dans d’autres langages de pro­gram­ma­tion, tels que Java. Il n’existe ex­pli­ci­te­ment aucune do while loop en R (il s’agit d’une boucle dans laquelle un bloc de code est exécuté une fois au moins). Néanmoins, vous pouvez im­plé­men­ter cette fonction très sim­ple­ment à l’aide de boucles repeat :

x <- 1
repeat {
    print(x)
    if (x >= 10) {
        break
        }
x <- x + 1
}
R

Ci-dessus, l’exemple de code affiche à l’écran les nombres allant de 1 à 10. Le code devant être exécuté au moins une fois (qui se trou­ve­rait dans le bloc de code « do » d’une do while loop classique) est mis en œuvre avant l’ins­truc­tion « if », qui se charge d’in­ter­rompre la boucle si la condition précisée est bien sa­tis­faite. 054a052ede79529377b381119f48e655

Aller au menu principal