A while loop helps you repeat a set of instructions as long as a condition is true. It saves you from writing the same code many times.
While loop in C
Introduction
Syntax
C
while (condition) { // code to repeat }
The condition is checked before each repetition.
If the condition is false at the start, the code inside the loop will not run at all.
Examples
i each time.C
int i = 0; while (i < 5) { printf("%d\n", i); i++; }
C
int count = 10; while (count > 0) { printf("Countdown: %d\n", count); count--; }
Sample Program
This program prints numbers from 1 to 5 using a while loop. It starts with number at 1 and keeps printing and increasing it until it reaches 5.
C
#include <stdio.h> int main() { int number = 1; while (number <= 5) { printf("Number is %d\n", number); number++; } return 0; }
Important Notes
Make sure to change something inside the loop that affects the condition, or the loop will run forever.
Use break; inside the loop if you want to stop it early.
Summary
A while loop repeats code while a condition is true.
The condition is checked before each repetition.
Remember to update variables inside the loop to avoid infinite loops.
Practice
1. What does a
while loop do in C programming?easy
Solution
Step 1: Understand the purpose of a while loop
A while loop runs repeatedly as long as its condition remains true.Step 2: Compare options with the definition
Only Repeats a block of code while a condition is true correctly describes this behavior.Final Answer:
Repeats a block of code while a condition is true -> Option AQuick Check:
While loop = repeat while condition true [OK]
Hint: While loops run only if condition is true before each repeat [OK]
Common Mistakes:
- Thinking while loop runs at least once even if condition is false
- Confusing while loop with for loop fixed iterations
- Believing while loop stops program immediately
2. Which of the following is the correct syntax for a while loop in C?
easy
Solution
Step 1: Recall C while loop syntax
The condition must be inside parentheses and the code block inside braces.Step 2: Check each option
Only while (condition) { /* code */ } uses correct parentheses and braces syntax.Final Answer:
while (condition) { /* code */ } -> Option AQuick Check:
Correct syntax uses parentheses and braces [OK]
Hint: Remember: while(condition) with parentheses and braces [OK]
Common Mistakes:
- Omitting parentheses around condition
- Using square brackets instead of parentheses
- Adding colon after while keyword
3. What is the output of this C code?
int i = 1;
while (i <= 3) {
printf("%d ", i);
i++;
}medium
Solution
Step 1: Trace the loop variable values
i starts at 1, prints 1, then increments to 2, prints 2, then 3, and stops after printing 3 because i becomes 4 and condition fails.Step 2: Confirm printed output
The printed numbers are "1 2 3 " with spaces after each number.Final Answer:
1 2 3 -> Option DQuick Check:
Prints 1 to 3 with spaces [OK]
Hint: Check loop start, end condition, and increments carefully [OK]
Common Mistakes:
- Including 4 in output by mistake
- Starting from 0 instead of 1
- Printing numbers in reverse order
4. Identify the error in this code snippet:
int i = 0;
while (i < 5)
printf("%d ", i);
medium
Solution
Step 1: Analyze loop behavior
Variable i starts at 0 and condition is i < 5, but i is never incremented inside the loop.Step 2: Understand consequence
Since i never changes, the condition stays true forever, causing an infinite loop.Final Answer:
Infinite loop because i is never updated -> Option CQuick Check:
Loop variable must change to avoid infinite loop [OK]
Hint: Always update loop variable inside while loop [OK]
Common Mistakes:
- Assuming loop ends without variable update
- Thinking missing braces cause syntax error here
- Ignoring infinite loop possibility
5. How can you modify this code to print all even numbers from 2 to 10 using a while loop?
int num = 1;
while (num <= 10) {
printf("%d ", num);
num++;
}hard
Solution
Step 1: Set starting point and increment for even numbers
Start num at 2 (first even number) and increase by 2 each time to get only even numbers.Step 2: Modify loop accordingly
Change initialization to num = 2 and inside loop do num += 2 instead of num++.Final Answer:
Initialize num to 2 and increment by 2 inside the loop -> Option BQuick Check:
Start at 2, add 2 each time for evens [OK]
Hint: Start at first even, add 2 each loop to get evens [OK]
Common Mistakes:
- Not incrementing num causing infinite loop
- Printing odd numbers by starting at 1
- Using for loop when question asks for while loop
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
