Contenu principal

while

Boucle while permet de répéter tant que la condition est vraie

Syntaxe

while expression
    statements
end

Description

while expression, statements, end évalue une expression Expression et répète l’exécution d’un groupe d’instructions dans une boucle tant que l’expression est vraie. Une expression est vraie lorsque son résultat est non vide et ne contient que des éléments non nuls (logiques ou numériques réels). À défaut, l’expression est fausse.

exemple

Exemples

réduire tout

Utilisez une boucle while pour calculer factorial(10).

n = 10;
f = n;
while n > 1
    n = n-1;
    f = f*n;
end
disp(['n! = ' num2str(f)])
n! = 3628800

Comptez le nombre de lignes de code dans le fichier magic.m. Ignorez les lignes et les commentaires vides à l’aide d’une instruction continue. continue ignore les instructions restantes dans la boucle while et commence l’itération suivante.

fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
    line = fgetl(fid);
    if isempty(line) || strncmp(line,'%',1) || ~ischar(line)
        continue
    end
    count = count + 1;
end
count
count = 
37
fclose(fid);

Calculez la somme de nombres aléatoires jusqu’à ce que le prochain soit supérieur à une limite. Ensuite, sortez de la boucle à l’aide d’une instruction break.

limit = 0.8;
s = 0;

while 1
    tmp = rand;
    if tmp > limit
        break
    end
    s = s + tmp;
end

En savoir plus

réduire tout

Conseils

  • Si vous créez par inadvertance une boucle infinie (à savoir une boucle qui ne s’interrompt jamais d’elle-même), arrêtez son exécution en appuyant sur Ctrl+C.

  • Si l’expression conditionnelle est évaluée par une matrice, MATLAB n’évalue les instructions que si tous les éléments de la matrice sont « true » (non nuls). Pour exécuter des instructions si au moins un élément est « true », encapsulez l’expression dans la fonction any.

  • Pour sortir de la boucle programmatiquement, utilisez une instruction break. Pour ignorer le reste des instructions dans la boucle et démarrer la prochaine itération, utilisez une instruction continue.

  • Lors de l’imbrication de plusieurs instructions while, chaque instruction while nécessite un mot clé end.

  • La boucle MATLAB while est similaire à la boucle do...while dans d’autres langages de programmation, tels que C et C++. Cependant, while évalue l’expression conditionnelle au début de la boucle plutôt qu’à sa fin.

    do  % Not valid MATLAB syntax
        statements
    while expression
    

    Pour imiter le comportement d’une boucle do...while, définissez la condition initiale de while sur true et placez l’expression conditionnelle à l’intérieur de la boucle. Par exemple, implémentez la boucle do...while ci-dessus en utilisant une boucle MATLAB while.

    while true
        statements
        if ~expression
            break
        end
    end
    

Capacités étendues

développer tout

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit avant R2006a