logo of SA Coder
sign in


Goto keyword

The goto keyword is a control transfer statement in the C programming language that allows the programmer to jump from one part of the program to another. However, while this feature might seem convenient at first, using the goto keyword can lead to many problems in the long run. In this post, we will explore the negative effects of using goto keyword in C programming and suggest better coding practices to use instead.

Why Avoid Using Goto Keyword?

Using the goto keyword in C programming can make your programs unreliable, unreadable, and hard to debug. Let's take a closer look at why this is the case.

1. Unreliability:

The goto keyword can cause unpredictable behavior in programs. When a program jumps to a different section of code, it can skip over important initialization steps, leading to incorrect results or even crashes. Furthermore, using goto statements can make it difficult to trace the flow of the program, making it challenging to find and fix bugs. 2. Readability:
Code that uses goto statements is often difficult to read and understand. As programs become more complex, it can be challenging to keep track of all the different locations where a goto statement might send the program. This makes it difficult to maintain and update the code over time, leading to even more problems down the road. 3. Debugging:
Debugging code that uses goto statements can be a nightmare. When the program jumps around, it can be difficult to understand what caused the issue in the first place. This can lead to hours of frustration and wasted time trying to track down the root cause of the problem.


Let's take a look at an example of how the goto keyword can lead to problems in a program.


#include <stdio.h>

int main()
    int num;
    char a;
    printf("Enter a number\n");
    scanf("%d", &num);
    printf("I am %d\n", num);
    printf("Enter another number enter 'y'\n");
    scanf("%c", &a);
    if (a == 'y')
        goto repeat;
    return 0;

This code asks the user to enter a number and then asks if they want to enter another number. If the user enters 'y', the program jumps to the "repeat" label and asks for another number. While this program might seem to work correctly, it is an excellent example of how goto statements can lead to problems.

If the user enters a non-numeric character instead of a number when asked if they want to enter another number, the scanf function will fail. However, since the program uses a goto statement to loop back to the "repeat" label, it will never exit the loop, causing an infinite loop.

Better Coding Practices:

Instead of using goto statements, it's better to use other control structures like loops, functions, and conditional statements. These structures make code more readable and understandable, making it easier to maintain and debug over time.


In conclusion, while the goto keyword can be a tempting feature to use in C programming, it can lead to significant problems over time. By avoiding the use of goto statements and using other control structures instead, you can create more reliable, readable, and maintainable code.

Please login first to comment.