Les deux boucles peuvent être choisies indifféremment. Cependant, l'une est le contraire de l'autre, au niveau de la condition d'arrêt :
Tant que condition1 est vraie, faire bloc d'instructions
Répéter bloc d'instructions, jusqu'à ce que condition2 soit vraie Dans ce cas, condition1 est l'opposé de condition2
les deux boucles suivantes sont équivalentes :
tant que (i <> 10) faire i <- i+1 (on fait varier i jusqu'à 10)
répéter i <- i+1 jusqu'à (i=10)
Il est toujours équivalent d'utiliser une boucle TANT QUE ou une boucle REPETER.
Cependant, il existe une différence entre les deux boucles :
Dans le cas d'une boucle REPETER ... JUSQU'A, le bloc d'instructions est effectué au moins une fois, ce qui n'est pas forcément vrai pour une boucle TANT QUE.
En effet, pour ce dernier type de boucle, si la condition est fausse dès le départ, le bloc d'instructions ne sera pas du tout exécuté. En revanche, avec une boucle REPETER ... JUSQU'A, si la condition est fausse dès le départ, le bloc d'instructions sera quand même exécuté une fois.
Les boucles REPETER et TANT QUE peuvent être utilisées même si les bornes sont définies. Il est cependant préférable d'utiliser dans ce cas une boucle POUR (vue précédemment).
Reprenons l'exemple de la paie de N personnes
Données N, PR, PL
Initialiser I avec la valeur 1
Tant que I est inférieur ou égal à N, faire:
Lire NH, SH
SB <- SH x NH
R <- SB x PR
Si R > PL alors R <- PL
SN <- SB - R
Ecrire SN
Donner à I la valeur suivante.
Fin de l'itération
Il en est de même avec Répéter...jusqu'à...
Données N, PR, PL
Initialiser I avec la valeur 1
Répéter les instructions suivantes :
Lire NH, SH
SB <- SH x NH
R <- SB x PR
Si R > PL alors R <- PL
SN <- SB - R
Ecrire SN
Donner à I la valeur suivante.
Jusqu'à ce que I=N