C Programming Tutorial

Goto Statement in C

“goto” Statement in C: Controversial Yet Powerful Control Transfer Mechanism

Exploring the Purpose, Usage, and Controversy Surrounding the “goto” Statement in C


In C programming, the “goto” statement allows programmers to perform an unconditional jump to a labeled statement within the same function. While the “goto” statement can provide flexibility in controlling program flow, it is often a topic of controversy due to potential misuse and its impact on code readability. This article aims to explain the concept and usage of the “goto” statement in C, provide practical examples to illustrate its functionality, and discuss the arguments surrounding its proper usage.

The Purpose of the “goto” Statement:

The primary purpose of the “goto” statement is to enable programmers to transfer control from one part of the code to another, typically by jumping to a labeled statement. It provides a mechanism for non-sequential execution, allowing programmers to handle exceptional cases or implement complex control flow logic. However, the “goto” statement is considered a powerful construct that must be used judiciously to avoid introducing code complexity and readability issues.

Usage of the “goto” Statement:

The “goto” statement is used by specifying a label followed by the “goto” keyword. When the “goto” statement is encountered, the program control jumps to the specified label within the same function. Here’s an example to illustrate its usage:

Example Code:


int main() {
int number;

printf(“Enter a number: “);
scanf(“%d”, &number);

if (number < 0) {
printf(“Invalid number. Please try again.\n”);
goto end;

printf(“The square of the number is: %d\n”, number * number);

printf(“Program execution completed.\n”);

return 0;


Enter a number: -5
Invalid number. Please try again.
Program execution completed.

In the above example, the program prompts the user to enter a number. If the entered number is less than zero (i.e., a negative number), the “goto” statement is used to jump to the “end” label. This allows the program to display an error message and skip the computation of the square of the number. Finally, regardless of the path taken, the program reaches the “end” label and displays a completion message.

Arguments Surrounding the “goto” Statement:

The use of the “goto” statement is often discouraged by some programming guidelines and coding standards due to its potential for creating complex and unreadable code. Critics argue that excessive use of “goto” statements can lead to spaghetti code and hinder program comprehension. However, proponents of the “goto” statement argue that, when used judiciously and appropriately, it can provide a concise and efficient way to handle complex control flow scenarios.


The “goto” statement is a controversial construct in C programming that allows for non-sequential execution and control transfer. While it can be a powerful tool in the hands of experienced programmers, it also has the potential to introduce code complexity and negatively impact code readability. As a developer, it is crucial to exercise caution and consider the trade-offs before using the “goto” statement in your code.

Remember, the “goto” statement should only be used sparingly and in cases where it significantly improves code clarity or addresses specific control flow requirements. Strive to write clean and readable code by utilizing other control structures and language features available in C. Understanding the strengths and weaknesses of different control flow mechanisms will empower you to make informed decisions and write high-quality C programs.


Yhaa You have done it but next? if YOU Want to your Others Programming Then Follow US HERE and Join Telegram.