The goto statement lets you jump to another part of your program quickly. It helps you skip or repeat code without using loops or functions.
Goto statement overview in C
Introduction
Syntax
C
goto label;
...
label:
// code to executeThe label is a name followed by a colon.
You can jump only within the same function using goto.
Examples
end and prints a message.C
goto end;
...
end:
printf("Jumped here!\n");error label if a condition is true.C
if (x < 0) { goto error; } ... error: printf("Error found!\n");
Sample Program
This program uses goto to create a loop that prints numbers from 0 to 2, then jumps to end to finish.
C
#include <stdio.h> int main() { int i = 0; start: if (i >= 3) { goto end; } printf("i = %d\n", i); i++; goto start; end: printf("Loop ended.\n"); return 0; }
Important Notes
Use goto carefully because it can make code hard to read.
Modern code usually prefers loops and functions instead of goto.
Summary
goto jumps to a labeled part of the code inside the same function.
It can simplify some tasks like breaking out of nested loops or error handling.
Use it sparingly to keep code clear and easy to understand.
Practice
1. What does the
goto statement do in C programming?easy
Solution
Step 1: Understand the purpose of
Thegotogotostatement is used to jump to a specific label inside the same function.Step 2: Compare with other options
Other options describe unrelated actions like creating functions or ending programs, whichgotodoes not do.Final Answer:
It jumps to a labeled part of the code within the same function. -> Option AQuick Check:
gotojumps to label [OK]
Hint: Remember: goto jumps only inside the same function [OK]
Common Mistakes:
- Thinking goto can jump between functions
- Confusing goto with function calls
- Believing goto ends the program
2. Which of the following is the correct syntax to use
goto in C?easy
Solution
Step 1: Recall correct
The correct syntax is simplygotosyntaxgoto label_name;without parentheses or equals sign.Step 2: Check other options for syntax errors
The other options use invalid syntax: one with a colon aftergoto, one with parentheses, and one with an equals sign.Final Answer:
goto label_name; -> Option CQuick Check:
Correct syntax isgoto label;[OK]
Hint: Use 'goto label;' without parentheses or equals [OK]
Common Mistakes:
- Adding parentheses after goto
- Using equals sign with goto
- Writing colon after goto
3. What will be the output of this C code?
int main() {
int x = 0;
start:
x++;
if (x < 3) goto start;
printf("%d", x);
return 0;
}medium
Solution
Step 1: Trace the loop with goto
The labelstartis beforex++. The code increments x, then checks if x < 3. If yes, it jumps back tostart.Step 2: Count increments until condition fails
x starts at 0, increments to 1, 2, then 3. When x is 3, conditionx < 3is false, so it stops looping and prints 3.Final Answer:
3 -> Option AQuick Check:
Loop increments x to 3 before printing [OK]
Hint: Count increments until condition fails [OK]
Common Mistakes:
- Thinking it prints 0 or 1
- Assuming infinite loop without checking condition
- Confusing label position
4. Identify the error in this C code using
goto:
int main() {
goto end;
printf("Hello");
end:
return 0;
}medium
Solution
Step 1: Check label definition and usage
The labelendis defined after the goto statement, so jumping to it is valid.Step 2: Analyze program flow
The program jumps toend, skipping theprintf. So it prints nothing and returns 0 without error.Final Answer:
No error; code runs and prints nothing. -> Option BQuick Check:
Jumping to label after goto is allowed [OK]
Hint: Jumping forward to label is allowed; no error [OK]
Common Mistakes:
- Thinking label must be before goto
- Expecting output when skipped
- Assuming syntax error in goto
5. How can
goto be used to break out of nested loops in C? Choose the best example.hard
Solution
Step 1: Understand nested loops and breaking out
Normally,breakexits only one loop. To exit multiple loops,gotocan jump to a label after all loops.Step 2: Identify correct usage of
Usinggotogotoinside the inner loop to jump outside both loops immediately breaks out of all loops.Final Answer:
Use goto inside inner loop to jump to a label outside both loops. -> Option DQuick Check:
Goto jumps out of nested loops [OK]
Hint: Use goto to jump outside nested loops for quick exit [OK]
Common Mistakes:
- Using goto to restart loops instead of exit
- Jumping to label inside loops only
- Thinking break exits all loops
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
