50 lines
1.9 KiB
Plaintext
50 lines
1.9 KiB
Plaintext
\b;Les blocs
|
|
Les accolades \c;{ }\n; permettent de grouper plusieurs instructions dans un bloc. Par exemple:
|
|
\c;
|
|
\s; {
|
|
\s; float t;
|
|
\s; t = a;
|
|
\s; a = b;
|
|
\s; b = t; // permute a et b
|
|
\s; }
|
|
\n;
|
|
Chaque instruction dans le bloc est terminée par un \l;point-virgule\u cbot\term;, mais pas le bloc lui-même.
|
|
Considérons l'exemple suivant utilisant l'instruction \c;\l;if\u cbot\if;\n;:
|
|
\c;
|
|
\s; if ( a < b )
|
|
\s; \n;instruction 1\c;;
|
|
\s; \n;instruction 2\c;;
|
|
\s; \n;instruction 3\c;;
|
|
\n;
|
|
Si la \l;condition\u cbot\cond; est vraie, les instructions 1, 2 et 3 sont exécutées. En revanche, si la condition est fausse, seule l'instruction 1 est sautée (on exécute donc les instructions 2 et 3). Le fait que l'instruction 2 soit alignée avec la 1 n'y change rien.
|
|
Pour n'exécuter les instructions 1 et 2 que si la condition est vraie, il faut les grouper dans un bloc:
|
|
\c;
|
|
\s; if ( a < b )
|
|
\s; {
|
|
\s; \n;instruction 1\c;;
|
|
\s; \n;instruction 2\c;;
|
|
\s; }
|
|
\s; \n;instruction 3\c;;
|
|
\n;
|
|
Les blocs sont très utilisés avec les instructions \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; et \c;\l;for\u cbot\for;\n;, pour grouper plusieurs instructions à exécuter ou à répéter.
|
|
On imbrique très souvent des blocs dans d'autres blocs, et ceci à autant de niveaux que nécessaire. Voici un exemple d'imbrication à deux niveaux:
|
|
\c;
|
|
\s; if ( a > b )
|
|
\s; {
|
|
\s; int i = 0;
|
|
\s; while ( i < 18 )
|
|
\s; {
|
|
\s; move(10);
|
|
\s; turn(5);
|
|
\s; i = i+1;
|
|
\s; }
|
|
\s; }
|
|
\n;
|
|
En général, pour des questions de lisibilité, on aligne verticalement l'accolade ouvrante \c;{\n; avec sa partenaire fermante \c;}\n;. Mais cela n'est pas obligatoire. L'exemple suivant, beaucoup plus compact mais déconseillé, est strictement équivalent à l'exemple précédent:
|
|
\c;
|
|
\s; if(a>b) { int i=0; while(i<18) {
|
|
\s; move(10);turn(5);i=i+1; }}
|
|
\n;
|
|
\t;Voir aussi
|
|
\l;Programmation\u cbot;, \l;types\u cbot\type; et \l;catégories\u cbot\category;.
|