Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2025.0.0 - Français


for

Ouverture d'une boucle itérative non conditionnelle

Syntaxe

for variable = expression, instruction ; .. ; instruction; end

for variable = expression
instruction
..
instruction
end

for variable = expression do
instruction,
..
instruction
end

Description

Si expression est un tableau (homogène ou non), variable prend les valeurs successives de chaque colonne du tableau (ou de matrix(expression, size(expression,1), -1))).

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

Si expression est une liste, for itère sur les éléments de la liste : variable prend chaque élément de la liste comme valeurs successives.

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, préférer:

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

à :

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

Exemples

Itérations triviales :

for i = 1:4
    factorial(i)
end

// Par valeurs décroissantes
for j = 4:-1:1
    j
end

Itérations implicites sur les colonnes d'un tableau :

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.

Colonnes d'un tableau de cells :

C = {%pi, "This is πι" ; %z^2, %t}
for  c = C, c, end
--> C = {%pi, "This is πι" ; %z^2, %t}
 C  = 
  [1x1 constant  ]  [1x1 string ]
  [1x1 polynomial]  [1x1 boolean]


--> for  c = C, c, end
 c  = 
  [1x1 constant  ]
  [1x1 polynomial]

 c  = 
  [1x1 string ]
  [1x1 boolean]

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

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

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

Voir aussi

  • while — mot-clé utilisé dans une structure while ... end
  • end — Fin d'un bloc if ou select, ou d'une boucle for ou while
  • do — Mot-clé utilisé pour les boucles

Historique

VersionDescription
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.
2023.0.0 expression peut être une hypermatrice. Il est alors traité par colonne comme matrix(expression, size(expression,1), -1).
Report an issue
<< end Structure de contrôle halt >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 24 11:15:55 CEST 2024