How to use goto statement in C / C++
In this tutorial, we will learn about the goto
statement in C / C++ and its working with the help of some examples. This is one of the basic knowledge in C / C++ programming language, so please learn it carefully.
goto
statement is used for altering the normal sequence of program execution by transferring control to some other part of the program.Syntax and flowchart of goto statement in C / C++
Let's see the syntax of the goto
statement below:
goto label; ... .. ... ... .. ... ... .. ... label: statement; ... .. ...
Here,
label
is an identifier. Whengoto label
is encountered, the control of program jumps tolabel
and executes the codes below it.statement
is the block of code to be executed.
Flowchart of goto
statement in C / C++:
Example: The program requires the user to enter a valid age (valid age must be greater than 0).
C++ programming:
#include <iostream> using namespace std; int main() { label: cout << "\nEnter your age: "; int age; cin >> age; if (age < 1){ cout<<"\nYour age entered is not valid. Please re-enter!\n"; goto label; } else { cout << "\nYour age is: " << age <<endl; } cout<<"\n-------------------------------\n"; cout<<"This program is posted at learnnc.com"; return 0; }
C programming:
#include <stdio.h> int main(void) { label: printf("\nEnter your age: "); int age; scanf("%d", &age); if (age < 1){ printf("\nYour age entered is not valid. Please re-enter!\n"); goto label; } else { printf( "\nYour age is: %d\n",age); } printf("\n-------------------------------\n"); printf("This program is posted at learnnc.com"); return 0; }
Output:
The goto
statement gives the power to jump to any part of a program but, makes the logic of the program complex and tangled.
The goto
statement can be replaced in most of C++ program with the use of break
and continue
statements.
Goto statement in C / C++ with examples
Here, we have two examples with goto
statement in C / C++. These are basic examples when using goto
statement in C / C++.
Example 1: The program asks the user to enter an even number. If you enter an odd number, you will be asked to re-enter it.
C++ programming:
#include <iostream> using namespace std; int main() { label: cout << "\nEnter a number: "; int number; cin >> number; if (number % 2 == 1){ cout<<"\nYour number entered is odd number. Please re-enter!\n"; goto label; } else { cout << "\nYour number entered is even number."<<endl; } cout<<"\n-------------------------------\n"; cout<<"This program is posted at learnnc.com"; return 0; }
C programming:
#include <stdio.h> int main(void) { label: printf("\nEnter a number: "); int number; scanf("%d", &number); if (number % 2 == 1){ printf("\nYour number entered is odd number. Please re-enter!\n"); goto label; } else { printf("\nYour number entered is even number.\n"); } printf("\n-------------------------------\n"); printf("This program is posted at learnnc.com"); return 0; }
Output:
Example 2: This program calculates the average of numbers entered by the user. If the user enters a negative number, it ignores the number and calculates the average number entered before it.
C++ programming:
#include <iostream> using namespace std; int main() { float num, average, sum = 0.0; int i, n; cout << "Maximum number of inputs: "; cin >> n; for(i = 1; i <= n; ++i) { cout << "Enter n" << i << ": "; cin >> num; if(num < 0.0) { // Control of the program move to jump: goto jump; } sum += num; } jump: average = sum / (i - 1); cout << "\nAverage = " << average; cout<<"\n-------------------------------\n"; cout<<"This program is posted at learnnc.com"; return 0; }
C programming:
#include <stdio.h> int main(void) { float num, average, sum = 0.0; int i, n; printf("Maximum number of inputs: "); scanf("%d", &n); for(i = 1; i <= n; ++i) { printf("Enter n%d: ",i); scanf("%f", &num); if(num < 0.0) { // Control of the program move to jump: goto jump; } sum += num; } jump: average = sum / (i - 1); printf("\nAverage = %0.2f",average); printf("\n-------------------------------\n"); printf("This program is posted at learnnc.com"); return 0; }
Output: