📖 Scenario: Imagine you are writing a simple program that checks numbers and jumps to a special message when a certain number is found.
🎯 Goal: You will create a program that uses the goto statement to jump to a label when a number matches a condition.
📋 What You'll Learn
Create an integer variable called number with the value 5
Create an integer variable called target with the value 5
Use an if statement to check if number equals target
Use goto to jump to a label called found if the condition is true
Print a message before and after the goto statement
Create a label called found that prints a special message
💡 Why This Matters
🌍 Real World
Sometimes, <code>goto</code> is used in low-level programming or error handling to jump to cleanup code quickly.
💼 Career
Understanding <code>goto</code> helps you read and maintain legacy C code and understand program flow control.
Progress0 / 4 steps
1
Create the initial variables
Create an integer variable called number and set it to 5.
C
Hint
Use int number = 5; to create the variable.
2
Add the target variable
Create an integer variable called target and set it to 5.
C
Hint
Use int target = 5; to create the variable.
3
Use goto to jump when numbers match
Write an if statement that checks if number equals target. Inside the if, use goto found;. Before the if, print "Checking numbers...". After the if, print "This will be skipped if numbers match.". Create a label called found that prints "Number matched! Jumped to label.".
C
Hint
Use if (number == target) { goto found; } and place the prints as instructed.
4
Print the final output
Run the program and print the output to show the goto statement worked.
C
Hint
When you run the program, it should print the first and last messages only.
Practice
(1/5)
1. What does the goto statement do in C programming?
easy
A. It jumps to a labeled part of the code within the same function.
B. It creates a new function.
C. It declares a variable.
D. It ends the program immediately.
Solution
Step 1: Understand the purpose of goto
The goto statement 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, which goto does not do.
Final Answer:
It jumps to a labeled part of the code within the same function. -> Option A
Quick Check:
goto jumps 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
A. goto: label_name;
B. goto(label_name);
C. goto label_name;
D. goto = label_name;
Solution
Step 1: Recall correct goto syntax
The correct syntax is simply goto 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 after goto, one with parentheses, and one with an equals sign.
Final Answer:
goto label_name; -> Option C
Quick Check:
Correct syntax is goto 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
A. 3
B. 0
C. 1
D. Infinite loop
Solution
Step 1: Trace the loop with goto
The label start is before x++. The code increments x, then checks if x < 3. If yes, it jumps back to start.
Step 2: Count increments until condition fails
x starts at 0, increments to 1, 2, then 3. When x is 3, condition x < 3 is false, so it stops looping and prints 3.
Final Answer:
3 -> Option A
Quick 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
A. Cannot jump over variable declarations.
B. No error; code runs and prints nothing.
C. Label 'end' is not defined.
D. Syntax error in goto statement.
Solution
Step 1: Check label definition and usage
The label end is defined after the goto statement, so jumping to it is valid.
Step 2: Analyze program flow
The program jumps to end, skipping the printf. So it prints nothing and returns 0 without error.
Final Answer:
No error; code runs and prints nothing. -> Option B
Quick 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
A. Use goto to jump to a label inside the inner loop.
B. Use goto to jump to a label after both loops finish.
C. Use goto to restart the inner loop from the beginning.
D. Use goto inside inner loop to jump to a label outside both loops.
Solution
Step 1: Understand nested loops and breaking out
Normally, break exits only one loop. To exit multiple loops, goto can jump to a label after all loops.
Step 2: Identify correct usage of goto
Using goto inside 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 D
Quick 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 unknownstrongwhile earning +1 Grip toward your certificate.