Updated March 20, 2023
Introduction to goto Statement in C++
goto statement is a jump control statement that make use of goto keyword to control the flow of the program by jumping to other statements following the label name within functions. goto statement uses label name to jump to other statements, the label name is user defined identifier which uses a colon to distinguish the label name.
There are two types of syntaxes in goto Statement which is preferred:
Syntax #1:
goto label;
.
.
.
label:
Label in the above syntax represents the user-defined input which tells the compiler to jump over that segment or block of code for any manipulation. The reverse of the label and goto label is also possible in the sense that labels can be placed before the goto label. It will be described in the second syntax which is as follows:
Syntax #2:
label:
.
.
.
goto label;
This syntax 2 also works in a similar way as syntax one with a minute difference of structure following and manipulation. The goal is to find the target and perform a jump between the codes.
Flowchart of goto Statement in C++
The flowchart of the goto statement in C++ with an explanation is given below.
Explanation: The flow of execution of this works in a way that supposes a programmer gives input and then executes the statement or code snippet and then wants to jump to somewhere else in the program then and there he or she will try to find out the target label as soon as it is found those set of statements will be executed followed by goto statement and then finally execution stops.
Another way out is that after execution we can go for target label first after that execution and then context switching by moving from target label to goto statement. Therefore, the flow of execution can be anything but the special feature of the goto statement makes the traversing and jumps easier with the programmer’s interest level.
There are some disadvantages also associated with the goto Statement. Focusing only on the positive aspect is not a good idea at all.
- It creates a very complex code structure like older code structures of languages like ALTRAN, FORTRAN.
- The main problem is to understand the code after opening the code after years.
- It becomes very tedious as it can enter an infinite loop if the goto statement is above the go-to call.
Therefore, the next question comes into mind is that how to avoid these goto Statements and answer is that they are unavoidable and substitute for them is continuous and break statements their working and feature is also same as the goto statement but still its not as advantageous to use as using goto statement.
How does goto Statement Work in C++?
Although goto Statement is considered very much advantageous for all the programmers as it provides an ease to them to perform jumps from one block of code to another block of code smoothly. Let’s see how many ways it can be performed.
Type – 1: Based on Syntax #1
Following syntax 1 is mostly preferred by many programmers who are planning to use the goto statement, but this is not mandatory to use syntax 1 which includes label definition followed by the goto Statement for this it can involve any feasible way which depends n on the user and their customization.
Example: Suppose we want to find out whether a number is even or odd and print the output accordingly using the goto statement. This code snippet or example will give a clarification:
Code:
#include <iostream>
using namespace std;
void CheckEvenOrOdd (int x)
{
if (x % 2 == 0)
goto even;
else
goto odd;
cout << x << " is even";
return;
odd:
cout << x << " is odd";
return;
even:
cout << x << " is even";
return;
}
int
main ()
{
int x = 26;
CheckEvenOrOdd (x);
return 0;
}
Output:
Type – 2: Based on Syntax #2
Example: In this example, we will follow for syntax 2 which says the opposite of syntax 1 with a label followed by going to statement. There will not be much difference in the sense both will work as a code transition way only i.e. context switching.
Here in this example we can infer the fact that goes to label can be pinpointed after method representation and after definition, it is called and then the target is given to point and make the context switching available easily i.e. it helps the user to give and customize their definitions according to requirements easily.
Code:
#include <iostream>
using namespace std;
void printAllNumbers ()
{
int a = 1;
label:
cout << a << " ";
a++;
if (a <= 10)
goto label;
}
int main ()
{
printAllNumbers ();
return 0;
}
Output:
Examples of goto Statement in C++
Below are the examples of goto statements in C++:
Example #1
Code:
#include<iostream>
using namespace std;
void checkGreater()
{
int s, t;
s=2; t=5;
if(s>t)
goto sGreater;
else
goto tGreater;
sGreater:
cout<<s<<" is greater";
return;
tGreater:
cout<<t<<" is greater";
}
int main ()
{
checkGreater ();
return 0;
}
Output:
Example #2
Code:
#include <iostream>
using namespace std;
void printAllNumbers ()
{
int d = 1;
print:
cout << d << " ";
d++;
if (d <= 5)
goto print;
}
int main ()
{
printAllNumbers ();
return 0;
}
Output:
Conclusion
No Doubt goto Statements are very useful and give programmers that flexibility and versatility to perform the jumps from one code segment to another within the same program as well outside the program as well. But still every time a programmer cannot bind themselves with old and nomadic ways of programming. Alternatives like continuous and break statements are used to meet the above disadvantages according to the modern way of following the structural code or execution of code structures. It is always believed that we should keep our code less complex and easy to understand delivering quality which cannot be performed by using a goto statement but can be easily achieved using continuous and break statements.
Recommended Articles
This is a guide to goto Statement in C++. Here we discuss how does goto statement work in C++ with the examples and code implementation. You may also look at the following articles to learn more-