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)