for Ouverture d'une boucle itérative non conditionnelle

## Description

Utilisé pour spécifier une boucle. La syntaxe est la suivante :

`for variable=expression ,instruction, ,instruction,end`

`for variable=expression do instruction, ,instruction,end`

Si `expression` est une matrice ou un vecteur ligne, `variable` prend successivement les valeurs de chaque colonne de la matrice.

Un exemple utile : `for variable=n1:pas:n2, ...,end`

Si `expression` est une liste, `variable` prend comme valeurs successives les termes de la liste.

En accord avec les conventions de codage pour le langage de programmation Scilab, il est recommandé de :

- Commencer chaque instruction sur une nouvelle ligne.

- Ne pas écrire plus d'une instruction simple par ligne.

- Séparer les instructions composées sur plusieurs lignes.

Par exemple, utiliser :

    for i = 1:5
        disp(i);
    end

au lieu de

    for i = 1:5, disp(i); end

## Exemples

Itérations communes (imbriquées ou non) :

    n=5;
    for i = 1:n
        for j = 1:n
            a(i,j) = 1/(i+j-1);
        end;
    end
    for j = 2:n-1
        a(j,j) = j;
    end;
    a

Itérations par valeurs décroissantes :

    for j = 4:-1:1
        j
    end

Itérations implicites sur les colonnes d'un vecteur-ligne ou d'une matrice :

    M = [1 2 ; 3 4 ; 5 6]'
    for  c = M, c, end

    -> M = [1 2 ; 3 4 ; 5 6]'
     M  =
       1.   3.   5.
       2.   4.   6.

    --> for  c = M, c, end
     c  =
       1.
       2.

     c  =
       3.
       4.

     c  =
       5.
       6.

    for v = a, write(%io(2),v), end
    for j = 1:n, v = a(:,j), write(%io(2),v), end

Itérations sur les éléments d'une liste :

    for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end

    --> for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end
     l  =
       1.   2.
       3.   4.

     l  =
                2   3
       1 +3z +3z  +z

     l  =
     example

     l  =
      F T

## Voir aussi

- while
- end
- do

## Historique

6.0.0

- L'`expression` alimentant les itérations peut maintenant être un vecteur d'identifiants graphiques. `for` est désormais protégé. Les affectations telles que `for=1` ne sont plus possibles.
- Le nombre de caractères constituant le corps d'une instruction conditionnelle (`if`, `while`, `for`, ou `select/case`) n'est plus limité à 16k.