Langage tcl › Les boucles

page 3 Les boucles

Il existe différentes types de boucles en tcl

A) les boucles  if then else

Une boucle conditionnelle s'écrit sous la forme:

if condition bloc
ou bien
if condition bloc1 else bloc2
ou bien
if condition bloc1 elseif condition2 bloc2 ... else bloc n

Remarque importante: cette instruction s'écrit sur la même ligne, on ne peut insérer des sauts de lignes qu'à l'intérieur des accolades, ainsi:

set a 4
if {$a > 0} {
puts $a}
else {puts -$a}
#incorrect car le else n'est pas sur la même ligne que le bloc

Conseil: toujours écrire les tests sous la forme suivante:

if {condition} {
bloc
} else {
bloc
}

ou de façon plus simplifiée le tout sur une seule ligne:

if {condition} {fais ceci} {sinon fais cela}

Pour aller plus loin, je vous renvoi sur la page dédié de la commande IF ici

B) les boucles FOR NEXT

Un boucle "FOR" s'écrit sous la forme:.

for initialisation condition incrémentation bloc

De la même manière que les tests, une boucle "FOR" s'écrit sur une même ligne, il ne peut y avoir des sauts de ligne qu'à l'intérieur d'accolades.


Exemple d'utilisation de la boucle FOR:

for {set i 1} {$i<=10} {incr i} {
puts $i
}

En résumé, voici un conseil d'écriture de la boucle FOR:

for {initialisations} {condition} {incrémentations} {
bloc
}

 

C) la boucle WHILE (tant que)

Une boucle "WHILE" s'écrit sous la forme:

while condition bloc

Comme toute instruction Tcl/Tk, cette commande s'écrit sur la même ligne. Ainsi on ne peut mettre des sauts de lignes que dans des blocs délimités par des accolades:

Par exemple :

% set a 1
% while {$a>0} {
puts $a
set a [expr a - 1]
#décrémentation de a }

En résumé voici un conseil de la boucle WHILE :

while {condition} {
bloc
}

 

D) la boucle switch

La boucle SWITCH est un équivalent à la boucle SELECT CASE d'autre langage de programmation. C'est une boucle à choix multiples

Le branchement à choix multiples s'écrit de la manière suivante:

switch chaîne modèle 1 bloc 1 ... modèle n bloc n

ou bien

switch chaîne modèle 1 bloc 1 ... modèle n bloc n default blocdefault

 petit exemple  :

switch $mavaleur {
		0 {fonction1}
		1 {fonction2}
		2 {fonction3 $unparametre}
	}

Dans cet exemple la variable $mavaleur peut prendre 3 cas :

si $mavaleur est égal à 0 alors j'exécute la fonction1

si $mavaleur est égal à 0 alors j'exécute la fonction2

si $mavaleur est égal à 0 alors j'exécute la fonction3 en lui passant un paramètre

 

PAGE 2 (les variables) - page 4 (les fichiers)

 

 

 

 

 

Flo, le 18 septembre 2026 à 04:41

Bonjour,

Cette section pourrait s'appeler quelque chose comme "commandes de contrôle des flux du programme".

"I"f ou "switch" ne sont pas des boucles.

En interne (bytecodes), ces commandes impliquent des sauts.

Du point de vues des boucles, il y a les boucles conditionnelles (for, while), et les boucles guidées par des données : "foreach", qui se fait le long d'une liste, ou "dict for", qui se fait le long d'un dictionnaire.

Les boucles guidées existent également en des versions qui collectent le résultat du script qu'elles exécutent (commandes : "lmap", "dict map")

 


dMc, le 13 juillet 2025 à 10:34

Petit copié-collé non corrigé dans "switch":

si $mavaleur est égal à 0 alors j'exécute ...