C Tutorial C References

C - goto Statement



In C, goto is a jump statement and sometimes also referred as unconditional jump statement. It can be used to jump from goto to a labeled statement within the same function. The target label must be within the same file and context.

Please note that the use of goto statement is highly discouraged in any programming language because it makes difficult to trace the control flow of a program, making hard to understand and modify the program.

Syntax

goto label;
...
...
...
label: statement;

In the above syntax, label is a user-defined identifier and it can be set anywhere in the C program above or below to goto statement.

Flow Diagram:

C goto

Example:

In the example below, the goto statement is used to display message according to provided argument.

#include <stdio.h>
 
static void checkNaturalNumber(int x) {
  if(x < 0)
    goto notNatural;
  else if(x%2 == 0)
    goto evenNatural;
  else
    goto oddNatural;
  
  notNatural: 
    printf("%i is not a natural number.\n", x);
    return;  //return when not natural
  evenNatural:
    printf("%i is an even natural number.\n", x);
    return;  //return when even natural
  oddNatural:
    printf("%i is an odd natural number.\n", x);
    return;  //return when odd natural
}

int main (){
  checkNaturalNumber(10);
  checkNaturalNumber(13);
  checkNaturalNumber(-10);
  return 0;
}

The output of the above code will be:

10 is an even natural number.
13 is an odd natural number.
-10 is not a natural number.