Structure de contrôle

15 Apr. 2007
Auteur : tonton nestor
Responsable : Jul
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Nous savons que toute instruction s'achève par un ;. Par conséquent, nous risquons de ne pouvoir exécuter qu'une intruction lors de l'introduction d'une condition. Pour palier à cela il est nécessaire de construire des blocs d'instruction à l'aide de { et }. ans la suite j'utiliserai <instructions> pour signifier :
une_instruction ;
ou
{ instruction_1 ; instruction_2 ; ............. instruction_N ; }

1. Les tests :

L'instruction if

Sa syntaxe est :
if(condition)
<Instructions>
else
<Instructions>      /*else n'est pas obligatoire*/
Exemple dans la fonction calcul :
{>if( *Max < tempmax ){
*Max = tempmax ;
*N=1;
}
>else if( *Max == tempmax) {++*N;}
>else if( *Max > tempmax) {/*Rien à faire*/}
>if( *ecart < (tempmax - tempmin) ) *ecart= tempmax - tempmin;

Il est possible d'utiliser une autre syntaxe pour if, plus rapide à éditer si jamais il n'y a pas de bloc d'instructions :
(condition) ? <instructions>:<instructions>
L'instruction de gauche est réalisée si le test est renvoie la valeur vraie, l'instruction de droite si le test renvoie la valeur faux.

L'instruction switch

L'instruction switch permet par rapport à la valeur d'un variable de réaliser une ou un bloc d'instructions. La syntaxe de switch est donné par :
>switchvariable
{>casevaleur_1:
<instructions>
>break;
>casevaleur_2:
<instructions>
>break;
[............]
>casevaleur_N:
<instructions>
>break;
default ;
<instructions>
>break;
}
La valeur default est utilisée si aucune valeur indiquée à la suite de case n'était égale à la variable.

2. Les boucles

La boucle for

Voici la syntaxe de cette éternelle boucle « pour » :
>for(i=0;i<=n_max;i++)
<instructions>
Ici, i prendra initialement la valeur 0 et ira jusque la valeur n_max comprise par pas de 1. L'incrémentation de i ce fait à l'aide de «++» : situé derrière i (i++), i sera incrémenté après que les instructions aient étés éffectuées, siués devant i (++i), i sera incrémenté avant que les instructions soient réalisée.

La boucle while

Elle correspond à la boucle « tant que ». Sa syntaxe est assez aisée :
>while(condition)
<instructions>

La boucle do while

Elle correspond à « tant que » et sa syntaxe :
>do
<instructions>
>while(condition)

Saut et arrêt dans les boucles

Il arrive parfois qu'un particulié se produise dans une boucle conduisant à une erreur, voir à un plantage du programme. Il est toute fois possible d'y remédier dans la mesure où nous aurions connaissance de ce cas (par exemple une division par zéro). Il suffit pour cela de réaliser un test qui permette de traiter le cas particulier à part, puis soit de reprendre la boucle, soit d'en sortir. Les fonctions respectives pour cela sont continue et break. Voici un exemple d'utilisation pour continue :
>for(i=0;i<=N_max;++i)
{
>if(i==3){
printf("division par zéro") ;
continue ;
}
res=1/(i-3) ;
}
et pour break :
>for(i=1;i<=N_max+1;i++)
{>if(i==3){
printf("division par zéro") ;
break ;
}
res=1/(i-3) ;
}
«« Précédent Suivant »»