Les boucles While en MATLAB

Aujourd'hui, je vous propose d'explorer l'implémentation des boucles while dans Matlab.

Qu'est-ce donc qu'une boucle while ? Il s'agit d'une structure récurrente, communément appelée "boucle", qui répète une série d'instructions tant qu'une condition donnée est vérifiée. Chaque exécution complète de ce bloc d'instructions constitue ce que l'on nomme une itération.

Avant d'exécuter ce bloc d'instructions, la boucle while évalue une condition logique.

while condition
bloc d'instructions
end

En fonction du résultat de cette évaluation, la boucle while peut se comporter de deux manières :

  • Si la condition initiale n'est pas remplie d'emblée, la boucle ne réalise aucune itération.
  • Si la condition initiale est remplie, la boucle exécute le bloc d'instructions, puis recommence. Elle prend fin lorsque la condition n'est plus satisfaite.

Remarque. La boucle while est dite indéfinie car le nombre d'itérations qu'elle peut réaliser n'est pas toujours connu à l'avance. Elle peut ne pas se déclencher, s'exécuter quelques fois ou de nombreuses fois, voire indéfiniment (boucle infinie).

Voyons un exemple concret.

Ce code calcule les carrés des nombres de 1 à 9 en utilisant une boucle while.

x=1;< br /> while x<10
disp(x^2);
x=x+1;
end

La boucle effectue neuf "passages", ou itérations, chacun affichant le carré de la variable x, puis augmentant sa valeur de un.

Voici ce que produit le code :

1
4
9
16
25
36
49
64
81

Dans cet exemple, la boucle while est qualifiée de définie car le nombre d'itérations est connu dès le départ.

Cependant, toutes les boucles while ne sont pas aussi prévisibles. Certaines peuvent exécuter un nombre indéterminé d'itérations, voire créer une boucle infinie si la condition initiale demeure constamment vérifiée.

Comment prévenir le risque de boucle infinie ?

Pour contourner ce risque, il est conseillé d'introduire une condition de sortie après un nombre maximal d'itérations.

Par exemple, considérons ce script qui génère un nombre aléatoire entre 1 et 100 et demande à l'utilisateur de le deviner.

number=randi(100);
x=0;
while x~=number
x = input("Devinez le numéro que j'ai tiré : ")
if (x~=number)
disp("Erreur !")
else
disp("Exact ! Vous avez deviné.")
break;
end
end

Cette boucle est indéterminée car on ne sait pas combien de tentatives l'utilisateur fera avant de trouver le bon numéro. Elle se termine uniquement lorsque le numéro est deviné.

Note. Un utilisateur logique ferait au plus 100 tentatives. Toutefois, si l'utilisateur persiste à saisir le même numéro, la boucle pourrait ne jamais s'arrêter.

Pour éviter ce scénario, il est judicieux d'intégrer un nombre maximal d'itérations dans la structure de la boucle while.

Vous pourriez, par exemple, ajouter un compteur t qui s'incrémente à chaque itération t = t + 1, soit après chaque essai. Lorsque t atteint 10, la boucle s'achève même si le numéro n'a pas été deviné.

number=randi(100);
x=0;
t=0;
while x~=number
x = input("Quel numéro ai-je choisi ? ")
if (x~=number)
disp("Incorrect !")
else
disp("Bravo ! Vous avez trouvé.")
break;
end
t=t+1;
if (t==10)
disp("Trop d'essais !");
break;
end

end

Cette méthode limite l'utilisateur à dix tentatives, empêchant ainsi la boucle de devenir infinie.

C'est une technique simple mais efficace pour contrôler la durée d'exécution d'une boucle while.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Boucles dans Matlab