Structure de controle
KGThimL
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Salut j'aimrais savoir comment utiliser la structure de controle GOTO.Merci d'avance pour votre particiption.
A voir également:
- Structure de controle
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Fan controle - Télécharger - Optimisation
- Structure d'un rapport de stage - Guide
- Controle parental disney plus - Guide
- Controle parental sur pc - Guide
2 réponses
Salut,
En C utiliser "goto" est assez simple.
Tu définis une étiquette vers laquelle tu pourras diriger le contrôle de l'exécution, et tu fais un goto dessus, qui est un saut inconditionnel.
Le plus dur, c'est de trouver des utilisations pertinentes.
Par exemple, pour sortir de deux boucles for imbriquées.
Ou aussi, pour désigner un (ou plusieurs) point(s) de sortie d'une fonction, qui doi(ven)t être utilisé(s) pour faire le ménage avant de quitter.
Dal
En C utiliser "goto" est assez simple.
Tu définis une étiquette vers laquelle tu pourras diriger le contrôle de l'exécution, et tu fais un goto dessus, qui est un saut inconditionnel.
Le plus dur, c'est de trouver des utilisations pertinentes.
Par exemple, pour sortir de deux boucles for imbriquées.
#include <stdlib.h> int main(void) { int i, j; /* stop when i and j equal to 5 */ for (i = 0; i < 10; i++) for (j = 0; j < 10; j++) if (i == 5 && j == 5) goto out; out: return 0; }
Ou aussi, pour désigner un (ou plusieurs) point(s) de sortie d'une fonction, qui doi(ven)t être utilisé(s) pour faire le ménage avant de quitter.
#include <stdlib.h> int main(void) { char * buffer1; char * buffer2; int status = EXIT_SUCCESS; buffer1 = malloc(1024*1024); if (!buffer1) return EXIT_FAILURE; if (condition1) { /* do something */ goto out_buffer1; } buffer2 = malloc(1024*1024); if (!buffer2) { status = EXIT_FAILURE; goto out_buffer1; } if (condition2) { /* do other things */ goto out_buffer2; } /* continue doing things */ ... /* wind-up */ status = EXIT_SUCCESS; out_buffer2: free(buffer2); out_buffer1: free(buffer1); return status; }
Dal