Une 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:
Conseil: toujours écrire les tests sous la forme suivante:
La condition doit, contrairement au C, être un "vrai" booléen (0 pour faux ou 1 pour vrai). Si la condition est composée de plus d'une opération arithmétique, il faut la mettre sous la forme [expr condition] qui force une évaluation mathématique et/ou booléenne de la condition.
Attention, les opérations
mathématiques sont interdites sur les chaînes de caractères,
en particulier il faut remplacer:
$chaîne1 == $chaîne2
par
[string compare $chaîne1 $chaîne2]==0.
string compare est une fonction qui renvoie 0 si les deux chaînes comparées sont identiques. La bibliothèque string regroupe un nombre appréciable de commandes de traitement de chaînes de caractères.
Un boucle "pour" s'écrit sous la forme:
for initialisation condition incrémentation bloc
De la même manière que les tests, une boucle "pour"
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 pour:
Conseil d'écriture de la boucle pour:
Une boucle "tant que" 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:
Exemple d'utilisation:
Conseil d'écriture d'une boucle "tant que":
Le branchement à choix multiples s'écrit de la manière
suivante:
switch chaîne modèle1 bloc1 ... modèlen blocn
ou bien
switch chaîne modèle1 bloc1
... modèlen blocn default blocdefault
avec blocdefault qui est exécuté si aucun modèle
ne correspond à la chaîne.
Exemple:
Conseil d'écriture: