goto statement in C/C++

The goto statement is a jump statement which is sometimes also referred to as unconditional jump statement. The goto statement can be used to jump from anywhere to anywhere within a function.
Syntax:

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.            |    .
.            |    .
.            |    .
label:       |    goto label;

In the above syntax the first line tells the compiler to go to or jump to the statement marked as label. Here label is a user defined identifier which indicates the target statement. The statement immediately followed after ‘label:’ is the destination statement. The ‘label:’ can also appear before the ‘goto label;’ statement in above syntax.
goto
Below are some examples on how to use goto statement:

Examples:

  • Syntax1 Example: In this case we will see a situation similar to as shown in Syntax1 above. Suppose we need to write a program where we need to check if a number is even or not and print accordingly using goto statement. Below program explains how to do this:

    // C/C++ program to check if a number is
    // even or not using goto statement
    #include <iostream>
    using namespace std;
    
    // function to check even or not
    void checkEvenOrNot(int num)
    {
        if (num % 2 == 0)
            goto even; // jump to even
        else
            goto odd; // jump to odd
    
    even:
        cout << num << " is evenn";
        return; // return if even
    odd:
        cout << num << " is oddn";
    }
    
    // Driver program to test above function
    int main()
    {
        int num = 26;
        checkEvenOrNot(num);
        return 0;
    }
    

    Output:

    26 is even
    

    Note the return statement after ‘even:’ in checkEvenOrNot function. Once the control jumps to the label with even:, the program will execute every piece of code after it. So it is important to return if the number is even. Otherwise the code after label odd will also gets executed as it comes after even.

  • Syntax2 example: In this case we will see a situation similar to as shown in Syntax1 above. Suppose we need to write a program which prints numbers from 1 to 10 using goto statement. Below program explains how to do this.

    // C/C++ program to print numbers
    // from 1 to 10 using goto statement
    #include <iostream>
    using namespace std;
    
    // function to print numbers from 1 to 10
    void printNumbers()
    {
        int n = 1;
    label:
        cout << n << " ";
        n++;
        if (n <= 10)
            goto label;
    }
    
    // Driver program to test above function
    int main()
    {
        printNumbers();
        return 0;
    }
    

    Output:

    1 2 3 4 5 6 7 8 9 10
    

Disadvantages of using goto statement:

  • The use of goto statement is highly discouraged as it makes the program logic very complex.
  • use of goto makes really hard to modify the program.
  • Use of goto can be simply avoided using break and continue statements.

This article is contributed by Harsh Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:



0 Average Difficulty : 0/5.0
No votes yet.










Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.