C goto statement

A goto statement provides the ability to jump to a named-label anywhere within the same function.

Syntax
snippet
goto label;
..
//some part of the code; 
label:

goto example

Let's see a simple example to use goto statement in C language.

snippet
#include <stdio.h>
int main() 
{
  int num,i=1; 
  printf("Enter the number whose table you want to print?"); 
  scanf("%d",&num);
  table: 
  printf("%d x %d = %d\n",num,i,num*i);
  i++;
  if(i<=10)
  goto table;  
}
Output
Enter the number whose table you want to print?10 10 x 1 = 10 10 x 2 = 20 10 x 3 = 30 10 x 4 = 40 10 x 5 = 50 10 x 6 = 60 10 x 7 = 70 10 x 8 = 80 10 x 9 = 90 10 x 10 = 100

When should we use goto?

A goto can be useful is if it becomes necessary to break out of a deeply nested structure, such as nested loops. A break statement cannot do this as it can only break out of one level at a time. Consider the following example.

snippet
#include <stdio.h>
int main() 
{
  int i, j, k;  
  for(i=0;i<10;i++)
  {
    for(j=0;j<5;j++)
    {
      for(k=0;k<3;k++)
      {
        printf("%d %d %d\n",i,j,k);
        if(j == 3)
        {
          goto out; 
        }
      }
    }
  }
  out: 
  printf("came out of the loop"); 
}
Output
0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 0 3 0 came out of the loop
Related Tutorial
Follow Us
https://www.facebook.com/Rookie-Nerd-638990322793530 https://twitter.com/RookieNerdTutor https://plus.google.com/b/117136517396468545840 #
Contents +