home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************
- * CH05_17.C L'instruction goto *
- * *
- * Gordon Dodrill de Coronado Entreprises 12501 Coronado Ave NE *
- * Albuquerque, New Mexico 87122 *
- * a Θcrit ce programme dans son excellent C TUTORIAL le 10 nov 1989 *
- * au profit de ses ΘlΦves qui Θtudient le C pour tenter de les guΘrir*
- * de l'emploi du goto! J'ai pensΘ qu'il Θtait inutile de traduire. *
- *********************************************************************/
-
- #include<stdio.h>
-
- main( void)
- {
- int dog,cat,pig;
-
- goto real_start;
-
- some_where:
- printf("This is another line of the mess.\n");
- goto stop_it;
-
- /* the following section is the only section with a useable goto */
- real_start:
- for(dog = 1;dog < 6;dog = dog + 1) {
- for(cat = 1;cat < 6;cat = cat + 1) {
- for(pig = 1;pig < 4;pig = pig + 1) {
- printf("Dog = %d Cat = %d Pig = %d\n",dog,cat,pig);
- if ((dog + cat + pig) > 8 ) goto enough;
- };
- };
- };
- enough: printf("Those are enough animals for now.\n");
- /* this is the end of the section with a useable goto statement */
-
- printf("\nThis is the first line out of the spaghetti code.\n");
- goto there;
-
- where:
- printf("This is the third line of spaghetti.\n");
- goto some_where;
-
- there:
- printf("This is the second line of the spaghetti code.\n");
- goto where;
-
- stop_it:
- printf("This is the last line of this mess.\n");
-
- }
-
- /* Result of execution
-
- Dog = 1 Cat = 1 Pig = 1
- Dog = 1 Cat = 1 Pig = 2
- Dog = 1 Cat = 1 Pig = 3
- Dog = 1 Cat = 2 Pig = 1
- Dog = 1 Cat = 2 Pig = 2
- Dog = 1 Cat = 2 Pig = 3
- Dog = 1 Cat = 3 Pig = 1
- Dog = 1 Cat = 3 Pig = 2
- Dog = 1 Cat = 3 Pig = 3
- Dog = 1 Cat = 4 Pig = 1
- Dog = 1 Cat = 4 Pig = 2
- Dog = 1 Cat = 4 Pig = 3
- Dog = 1 Cat = 5 Pig = 1
- Dog = 1 Cat = 5 Pig = 2
- Dog = 1 Cat = 5 Pig = 3
- Those are enough animals for now.
-
- This is the first line out of the spaghetti code.
- This is the second line of the spaghetti code.
- This is the third line of spaghetti.
- This is another line of the mess.
- This is the last line of this mess. */
-