Load and display the file gotoex.c for an example of a file with some "goto" statements in
main()
{
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++) {
for(cat = 1;cat < 6;cat++) {
for(pig = 1;pig < 4;pig++) {
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 the spaghetti code.\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 the mess.\n");
}
To use a "goto" statement, you simply use the reserved word "goto", followed by the symbolic
name to which you wish to jump. The name is then placed anywhere in the program followed
by a colon. You are not allowed to jump into any loop, but you are allowed to jump out of a
loop. Also, you are not allowed to jump out of any function into another. These attempts will
be flagged by your compiler as an error if you attempt any of them.
This particular program is really a mess but it is a good example of why software writers are
trying to eliminate the use of the "goto" statement as much as possible. The only place in this
program where it is reasonable to use the "goto" is the one in line 17 where the program jumps
out of the three nested loops in one jump. In this case it would be rather messy to set up a
variable and jump successively out of all three loops but one "goto" statement gets you out of
all three.
Some persons say the "goto" statement should never be used under any circumstances but this
is rather narrow minded thinking. If there is a place where a "goto" will be best, feel free to use
it. It should not be abused however, as it is in the rest of the program on your monitor.
Google Search
Custom Search