So far we have discussed the if statements and how it is used in C to control statement execution based on some decisions or conditions. The flow of execution also depends on other statements which are not based on conditions that can control the flow.

C supports a unique form of a statement that is the goto Statement which is used to branch unconditionally within a program from one point to another. Although it is not a good habit to use the goto statement in C, there may be some situations where the use of the goto statement might be desirable.

The goto statement is used by programmers to change the sequence of execution of a C program by shifting the control to a different part of the same program.

The general form of the goto statement is:

goto label;

A label is an identifier required for goto statement to a place where the branch is to be made. A label is a valid variable name which is followed by a colon and is put immediately before the statement where the control needs to be jumped/transferred unconditionally.

goto label;

        - - -- -   -
        - - - - - - - -


statement - X;
/* This the forward jump of goto statement */



        - - -- -   -
        - - - - - - - -

goto label;

/*This is the backward jump of goto statement */

An Example of a C Program to Demonstrate goto Statement


void main()
   int age;

   g: //label name
     printf("you are Eligible\n");
   s: //label name
     printf("you are not Eligible");

   printf("Enter you age:");
   scanf("%d", &age);
        goto g; //goto label g
        goto s; //goto label s

goto Statement in C - Video Tutorial

To understand "C goto Statement" in more depth, please watch this video tutorial.