C++ goto Statement

C++ goto Statement

In this tutorial, we will learn about goto statement, how it works and why should it be avoided. In C++ programming with the help of some examples.

goto Statement

  • The goto statement is a jump control statement.
  • Sometimes also referred to as unconditional jump statement.
  • The goto statement can be used to from anywhere to anywhere within a function.
  • goto statement is used for altering the normal sequence of program execution by transferring control to some other part of the program.

Syntax of goto Statement

goto label;
... .. ...
... .. ...
... .. ...
... .. ...

In the syntax above, label is an identifier. When goto label; is encountered, the control of program jumps to label: and executes the code below it.

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

In the above syntax

  • The first line tells the compiler to goto or jump to the statement marked as a label.
  • The label is a user-defined identifier which indicates the target statement.
  • The goto statement immediately followed after label: is the destination statement.
  • label: can also appear before the goto label; statement.

Example 1: C++ Program to check voting eligibility using goto Statement

// This program to check if you are 18 or not using goto statement.

# include <iostream>
using namespace std;

int main(){
    int age;
    cout << "You are not eligible for voting!\n";
    cout << "Enter Your age: ";
    cin >> age;
    if(age < 18){
        // Control of the program move to jump:
        goto noteligible;
        cout << "You are eligible for voting!";
    return 0;


You are not eligible for voting!
Enter Your age: 13
You are not eligible for voting!
Enter Your age: 26
You are eligible for voting!

Example 2: C++ Program to calculate average using goto Statement

// This program calculates the average of positive numbers entered by the user.
// If user enters negative number, it ignores and calculate only positive numbers average before it.

# include <iostream>
using namespace std;

int main()
    float number, average, sum = 0.0;
    int i, n;

    cout << "Number of inputs: ";
    cin >> n;

    for(i = 1; i <= n; i++)
        cout << "Enter the value of n" << i << ": ";
        cin >> number;
        if(number < 0.0)
           // Control of the program move to jump:
            goto jump;
        sum += number;
    average = sum / (i - 1);
    cout << "\nTotal Average = " << average;
    return 0;


Number of inputs: 10
Enter n1: 2.3
Enter n2: 5.6
Enter n3: -5.6

Average = 3.95

You can write any C++ program without the use of goto statement and is generally considered a good idea not to use them.

Reasons why we Avoid goto Statement

  • The goto statement gives power to jump to any part of program but, makes the logic of the program complex and tangled.
  • The problem with using goto statement is that it is easy to develop program logic that is very difficult to understand, even for the original author of the code.
  • In modern programming, goto statement is considered a harmful construct and a bad programming practice.
  • It is easy to get caught in an infinite loop if the goto point is above the goto call.
  • The goto statement can be avoided in most of C++ program with the use of break and continue statements.

Next Tutorial

We hope that this tutorial helped you develop better understanding of the concept of goto Statement in C++.

Keep Learning : )

In the next tutorial, you'll learn about C++ Functions.

- Related Topics