Next: Inclusion de source
Up: Les bases
Previous: Les opérateurs les plus
Sous-sections
Instruction expression
- Syntaxe :
instruction :
expression ;
[ ]
Sémantique :
L'expression est évaluée, et sa valeur est ignorée. Ceci n'a donc de sens que
si l'expression réalise un effet de bord. Dans la majorité des cas, il s'agira
d'une expression d'affectation.
Exemple :
i = j + 1;
D'après la syntaxe, on voit qu'il est parfaitement valide d'écrire
l'instruction
i + 1;
mais ceci ne faisant aucun effet de bord, cette instruction n'a aucune utilité.
- Syntaxe :
instruction :
{
liste-de-déclarationsoption
liste-d'instructions
}
- Sémantique :
Le but de l'instruction composée est double, elle permet :
- 1.
- de grouper un ensemble d'instructions en lui donnant la forme syntaxique
d'une seule instruction ;
- 2.
- de déclarer des variables qui ne seront accessible qu'à l'intérieur de
l'instruction composée (structure classique de 'blocs').
- -
- il n'y a pas de séparateur dans liste-d'instructions (les points
virgules sont des terminateurs pour les instructions qui sont des
expressions) ;
- -
- les accolades jouent le rôle des mots clés begin et end
que l'on trouve dans certains langages (Pascal, PL/1, etc.).
- Syntaxe :
instruction :
if ( expression ) instruction1
if ( expression ) instruction1 else instruction2
- Sémantique :
expression est évaluée, si la valeur rendue est non nulle, on exécute
instruction1, sinon on exécute instruction2 si elle
existe.
- 1.
- Attention au fait que expression doit être parenthésée ;
- 2.
- La partie then de l'instruction n'est pas introduite par un mot clé :
pas de then comme dans certains langages.
- 3.
- Lorsqu'il y a ambiguïté sur l'instruction if
dont dépend une partie else, l'ambiguïté est levée en faisant
dépendre le else de l'instruction if la plus proche.
Par exemple, si on écrit :
if (a > b) if (c < d) u = v; else i = j;
le else sera celui du if (c < d).
Si on voulait qu'il en soit autrement, il faudrait écrire :
if (a > b)
{
if (c < d) u = v;
}
else i = j;
Étant donné que l'instruction if teste l'égalité à zéro de
expression,
celle-ci n'est pas nécessairement une expression de comparaison.
Toute expression délivrant une valeur pouvant être comparée à zéro
est valide.
if (a > b) max = a; else max = b;
if (x > y)
{
... /* liste d'instructions */
}
else
{
... /* liste d'instructions */
}
if (a) /* équivalent à if (a != 0) */
{
...
}
Next: Inclusion de source
Up: Les bases
Previous: Les opérateurs les plus
Bernard Cassagne
1998-12-09
| |