Ek baar likho, sau baar chalao — loops ka poora jaadu isi ek line mein hai. Table print karni ho, factorial nikaalna ho, ya star ka pattern banana ho, har jagah iterative constructs lagte hain. ICSE Class 10 Computer Applications mein yeh Unit 1 (Revision of Class IX) ka hissa hai, aur Section B ke lambe programs mein sabse zyada isi ka istemaal hota hai. Chaliye, teeno loops ko ek-ek karke pakadte hain.
- Why Loops? The Four Parts of Every Loop
- The
forLoop - The
whileLoop - The
do…whileLoop - Entry-Controlled vs Exit-Controlled
- Inter-Conversion: for ↔ while ↔ do…while
- Jump Statements:
breakandcontinue - Variations, Infinite Loops and Multiple Counters
- Nested
forLoops and Patterns - Dry-Run Bank — Output Questions
- How This Chapter Is Examined
- Practice Worksheet (10 Questions)
Why Loops? The Four Parts of Every Loop
Maan lo tumhe 1 se 100 tak ke numbers print karne hain. Sau baar System.out.println() likhoge? Nahi. Ek loop likhoge. Har loop mein chaar cheezein hoti hain — aur agar inme se ek bhi galat ho gayi, program ya toh kam baar chalega, ya hamesha ke liye chalta rahega:
2. Condition — kab tak chale (boolean hona chahiye).
3. Body — har baar kya kaam ho.
4. Updation — counter aage kaise badhe.
Updation bhoolna = infinite loop. Yeh sabse aam loop-related galti hai.
The for Loop
Jab tumhe pehle se pata ho ki loop kitni baar chalega, tab for sabse saaf hai — kyunki teeno cheezein (initialization, condition, updation) ek hi line mein dikhti hain.
for (initialization; condition; updation)
{
statement(s);
}
for (int i = 1; i <= 5; i++)
{
System.out.print(i + " ");
}
System.out.println();
System.out.println("Loop over");Output:
1 2 3 4 5 Loop over
Condition i <= 5 chhathi baar (i = 6) false ho jaati hai, isliye loop wahin ruk jaata hai. Body paanch baar chali.
int n = 5, f = 1;
for (int i = 1; i <= n; i++) f = f * i;
System.out.println("Factorial of " + n + " = " + f);Output:
Factorial of 5 = 120
Yeh for ka classic case hai — kitni baar chalna hai (n baar) pehle se pata hai. Ek hi cheez ka dhyaan rakho: f ki initial value 1 honi chahiye, 0 nahi, warna sab kuch 0 ho jaayega.
i < 5 aur i <= 5 mein ek poora iteration ka farak hai. “First n numbers” ke liye i = 1; i <= n likho. Aur ek aur trap: for (int i = 1; i <= 5; i++); — yahan bhi semicolon loop ka body khaali kar deta hai.for (int i…) mein i loop ke bahar exist hi nahi karta — use karoge toh compile error milega.The while Loop
Jab count pehle se pata na ho — “jab tak number 0 se bada hai”, “jab tak user quit na kare” — tab while natural choice hai. Yahan initialization loop se pehle aur updation body ke andar likhni padti hai.
int i = 1, sum = 0;
while (i <= 10)
{
sum = sum + i;
i++;
}
System.out.println("Sum of 1 to 10 = " + sum);
System.out.println("i after loop = " + i);Output:
Sum of 1 to 10 = 55 i after loop = 11
Dhyaan do: i loop ke baad 11 hai, 10 nahi. Yeh exactly wahi cheez hai jo examiner “value of i after the loop” wale question mein test karta hai.
Yahi table hai jo tumhe har output question par kaagaz par banani hai. Ek column har variable ka, ek column condition ka, ek column output ka:
| Iteration | i | i <= 10 ? | sum after body |
|---|---|---|---|
| 1 | 1 | true | 1 |
| 2 | 2 | true | 3 |
| 3 | 3 | true | 6 |
| 4 | 4 | true | 10 |
| … | … | … | … |
| 10 | 10 | true | 55 |
| exit | 11 | false | 55 (final) |
Aakhri (laal) row hi woh row hai jahan zyadatar marks jaate hain — loop ke baad i 11 hai, 10 nahi. Har dry-run mein yeh exit row zaroor likho.
int m = 1234, rev = 0;
while (m > 0)
{
int d = m % 10;
rev = rev * 10 + d;
m = m / 10;
}
System.out.println("Reverse of 1234 = " + rev);Output:
Reverse of 1234 = 4321
Yeh while ka canonical example hai: number mein kitne digits hain, yeh pehle se pata nahi — bas “jab tak m bacha hai” chalte raho. Digit nikalne ka jodi-formula yaad kar lo: % 10 se aakhri digit milta hai, / 10 se woh hata deta hai, aur rev * 10 + d use nayi jagah jodta hai. Palindrome aur Armstrong dono programs isi par khade hain.
i++while mein updation body ke andar likhni padti hai, aur wahi sabse zyada bhooli jaati hai. Bina i++ ke condition kabhi false nahi hogi — program hamesha chalta rahega. BlueJ mein aisa program manually rokna padta hai.The do…while Loop
Iska ek hi khaas gun hai: body kam se kam ek baar zaroor chalti hai, chahe condition shuru se hi false ho. Kyunki condition neeche check hoti hai. Aur haan — while ke baad semicolon lagta hai.
do
{
statement(s);
}
while (condition); // yeh semicolon zaroori hai
int i = 11;
while (i <= 10)
{
System.out.println("while body: " + i);
i++;
}
int j = 11;
do
{
System.out.println("do-while body: " + j);
j++;
}
while (j <= 10);Output:
do-while body: 11
Yehi poora output hai. while ka body ek baar bhi nahi chala (11 <= 10 shuru se hi false tha), par do…while ka ek baar chal gaya. Yeh 2-mark ka pakka question hai — isse dohra lo.
do…while perfect fit hai — menu kam se kam ek baar toh dikhna hi chahiye, phir user ke choice par dohraana hai. Answer likhte waqt yeh reason likh dena extra impression banata hai.Entry-Controlled vs Exit-Controlled
Syllabus mein yeh do naam saaf-saaf diye gaye hain, aur definition wala question har saal aa sakta hai. Farak sirf ek baat ka hai: condition kahan check hoti hai.
for, while) — condition body se pehle. Minimum iterations = 0.Exit-controlled (
do…while) — condition body ke baad. Minimum iterations = 1.Bas yahi ek line yaad rakh lo, aadha chapter yahin hai.
| Point | for / while | do…while |
|---|---|---|
| Type | Entry-controlled | Exit-controlled |
| Condition checked | Before the body | After the body |
| Minimum runs | 0 | 1 |
| Semicolon after condition | No | Yes |
| Best for | Known count / condition-first work | Menus, “at least once” work |
Inter-Conversion: for ↔ while ↔ do…while
“Convert the following for loop into a while loop” — yeh ICSE ka regular 2-mark question hai. Trick simple hai: teeno parts ko unki nayi jagah par bhej do.
System.out.println("--- for ---");
for (int i = 1; i <= 3; i++) System.out.print(i + " ");
System.out.println();
System.out.println("--- while ---");
int i = 1;
while (i <= 3) { System.out.print(i + " "); i++; }
System.out.println();
System.out.println("--- do while ---");
int k = 1;
do { System.out.print(k + " "); k++; } while (k <= 3);
System.out.println();Output:
--- for --- 1 2 3 --- while --- 1 2 3 --- do while --- 1 2 3
Teeno ka output bilkul same. Conversion ka rule: initialization loop se pehle, condition apni jagah, updation body ke akhir mein.
do…while ko blindly likh dena. Agar original condition shuru se hi false ho sakti hai, toh do…while ka output alag aayega — woh ek baar zyada chalega. Isliye “convert to do-while” sirf tab safe hai jab loop kam se kam ek baar chalna hi ho.Jump Statements: break and continue
Do chhote shabd, do bilkul alag kaam. break loop ko chhod deta hai. continue sirf us ek chakkar ko chhodta hai aur agle chakkar par chala jaata hai.
for (int i = 1; i <= 10; i++)
{
if (i == 6) break;
if (i % 2 == 0) continue;
System.out.print(i + " ");
}
System.out.println();Output:
1 3 5
i = 2 aur 4 par continue ne print skip karwaya, par loop chalta raha. i = 6 par break ne loop hi khatam kar diya — 7, 8, 9, 10 tak baat hi nahi pahunchi.
for (int i = 5; i >= 1; i--)
{
if (i == 3) continue;
System.out.print(i);
}
System.out.println();Output:
5421
Sirf 3 gayab hai. Aur dhyaan do — for loop mein continue ke baad bhi i-- chalta hai, isliye loop atakta nahi.
continue in a while loopwhile mein continue seedha condition par kood jaata hai — body ke andar likhi updation skip ho jaati hai. Agar i++ continue ke neeche hai, toh loop wahin phans jaayega. for mein aisa nahi hota, kyunki updation loop ke apne header mein hai.break switch mein bhi kaam karta hai, continue sirf loops mein. Chhoti si baat hai, par poora mark deti hai.Variations, Infinite Loops and Multiple Counters
Syllabus mein saaf likha hai: “variations in looping statements”, “finite and infinite”, “delay”, aur “multiple counter variables”. In sab par chhote output questions bante hain.
for (int i = 1, j = 10; i < j; i++, j--)
{
System.out.println(i + " ... " + j);
}Output:
1 ... 10 2 ... 9 3 ... 8 4 ... 7 5 ... 6
Ek counter upar, doosra neeche — jab woh mil jaate hain, loop ruk jaata hai. Comma se dono ko initialize aur update kiya jaata hai.
int i = 1;
for ( ; i <= 3; )
{
System.out.print(i + " ");
i++;
}
System.out.println("| i = " + i);Output:
1 2 3 | i = 4
for ke teeno khaane khaali chhode ja sakte hain — semicolons phir bhi zaroori hain. Yahan i loop ke bahar declare hua, isliye loop ke baad bhi use kar sakte hain.
for ( ; ; ) aur while (true) infinite loops hain — unse nikalne ka ekmatra raasta andar likha break hai. Ek delay loop woh hota hai jiska body khaali ho aur jo sirf waqt kaatne ke liye chalaya jaaye.Nested for Loops and Patterns
Ek loop ke andar doosra loop. Yaad rakhne ka tareeka: bahar wala loop = rows, andar wala loop = columns. Bahar wala ek baar chalta hai, toh andar wala poora chal jaata hai.
for ke liye hain — nested while aur nested do…while syllabus mein shaamil nahi hain. Patterns bhi do hi tarah ke poochhe jaate hain: rectangular aur right-angled triangle. Iska matlab yeh hai ki pattern programs likhne ko kaha jaayega toh hamesha nested for se hi banega — nested while se pattern likhne ko nahi kaha jaayega. Par ghabrao mat: Section A ke chhote output questions mein ek nested while ka trace phir bhi aa sakta hai, kyunki while khud syllabus mein hai. Isliye padhna dono chahiye — likhna sirf for se.for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= 5; j++)
{
System.out.print("* ");
}
System.out.println();
}Output:
* * * * * * * * * * * * * * * * * * * *
Andar wala loop har row mein 5 stars chhaapta hai; System.out.println() bahar wale loop mein hai, isliye har row ke baad line badalti hai.
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
{
System.out.print(j + " ");
}
System.out.println();
}Output:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Poora triangle ek hi cheez se banta hai: andar wale loop ki condition j <= i hai, koi fixed number nahi. Har naye row par i bada hota hai, isliye row lambi hoti jaati hai.
for (int i = 1; i <= 4; i++)
{
for (int j = 4; j > i; j--) System.out.print(" ");
for (int j = 1; j <= i; j++) System.out.print("*");
System.out.println();
}Output:
* ** *** ****
Do inner loops: pehla spaces chhaapta hai, doosra stars. Yeh pattern questions ka master template hai — “kitne spaces, kitne stars” bas yeh do sawaal poochho.
i se kaise juda hai. Code baad mein aayega — ninety percent kaam yeh table banane mein hi ho jaata hai.Dry-Run Bank — Output Questions
Har snippet pehle khud kaagaz par solve karo — ek table banao jismein har variable ki value har iteration par likhi ho. Phir answer kholo. Yahan ke saare programs compile karke chalaye gaye hain.
int x = 0;
for (int i = 1; i <= 5; i++)
{
x += i;
}
System.out.println(x);
int y = 5;
do { System.out.print(y + " "); y -= 2; } while (y > 0);
System.out.println();Show Answer
Output:
15 5 3 1
1+2+3+4+5 = 15. Doosre loop mein y: 5 → 3 → 1 → −1, aur −1 par condition false ho gayi.
int i = 11;
while (i <= 10)
{
System.out.println("while body: " + i);
i++;
}
int j = 11;
do
{
System.out.println("do-while body: " + j);
j++;
}
while (j <= 10);Show Answer
Output:
do-while body: 11
Sirf ek line. Entry-controlled loop zero baar chala, exit-controlled ek baar — yehi is chapter ka core idea hai.
while trace (output question type)int a = 1;
while (a <= 3)
{
int b = 1;
while (b <= 2)
{
System.out.print(a * b + " ");
b++;
}
a++;
}
System.out.println();Show Answer
Output:
1 2 2 4 3 6
a = 1 → 1, 2. a = 2 → 2, 4. a = 3 → 3, 6. Sabse zaroori baat: b ko andar wale loop se pehle har baar 1 par reset kiya gaya hai. Reset bhoolne par loop sirf ek hi baar chalta.
for (int i = 5; i >= 1; i--)
{
if (i == 3) continue;
System.out.print(i);
}
System.out.println();Show Answer
Output:
5421
3 skip hua, baaki sab chhapa — aur bina space ke, kyunki print(i) mein koi space nahi hai.
int i = 1;
for ( ; i <= 3; )
{
System.out.print(i + " ");
i++;
}
System.out.println("| i = " + i);Show Answer
Output:
1 2 3 | i = 4
Loop tab ruka jab i = 4 hua — isliye loop ke baad i ki value 4 hai, 3 nahi.
How This Chapter Is Examined
Seedha CISCE ke Computer Applications (86) syllabus document se:
Internal Assessment — 100 marks, poora practical: saal bhar mein kam se kam 20 laboratory assignments.
Paper ka pattern — Section A 40 marks (saare compulsory), Section B 60 marks (kisi bhi chaar questions ke answer do).
Is chapter ki jagah — Class X ka Unit 1 “Revision of Class IX Syllabus” hai, jismein Iterative constructs in Java aur Nested for loops dono alag-alag listed hain. Yaani yeh poora examinable hai.
Section A mein aate hain: entry vs exit controlled ki definition, break vs continue ka farak, chhote output questions, aur loop-conversion. Section B mein poore programs — series ka sum, factorial, palindrome, Armstrong, prime check, Fibonacci aur pattern printing. Ek baat aur: syllabus mein nested while aur nested do…while shaamil nahi hain, isliye pattern questions hamesha nested for se hi banenge.
Practice Worksheet (10 Questions)
Pehle khud likho, phir answer kholo. Har code ka output verified hai.
Show Answer
Entry-controlled loop mein condition body se pehle check hoti hai, isliye body zero baar bhi chal sakti hai — jaise for aur while. Exit-controlled loop mein condition body ke baad check hoti hai, isliye body kam se kam ek baar chalti hai — jaise do…while.
break aur continue mein do farak likho.Show Answer
(i) break poora loop chhod deta hai; continue sirf current iteration chhodta hai aur agle par chala jaata hai. (ii) break loops aur switch dono mein chalta hai; continue sirf loops mein.
while loop mein badlo: for (int i = 1; i <= 3; i++) System.out.print(i + " ");Show Answer
int i = 1;
while (i <= 3)
{
System.out.print(i + " ");
i++;
}Output:
1 2 3
for (int i = 1, j = 10; i < j; i++, j--)
System.out.println(i + " ... " + j);Show Answer
1 ... 10 2 ... 9 3 ... 8 4 ... 7 5 ... 6
Paanch lines. Agli baar i = 6, j = 5 hota, aur 6 < 5 false hai.
for se ek infinite loop likho.Show Answer
Woh loop jiski condition kabhi false na ho, isliye woh apne aap kabhi na ruke. for ( ; ; ) { } ya while (true) { } — nikalne ke liye andar break lagana padta hai.
Show Answer
int n = 153, t = n, s = 0;
while (t > 0)
{
int d = t % 10;
s = s + d * d * d;
t = t / 10;
}
System.out.println(n + (s == n ? " is an Armstrong number"
: " is not an Armstrong number"));Output:
153 is an Armstrong number
Asli number ki copy t mein rakhna zaroori hai — warna comparison ke waqt n bigad chuka hoga.
Show Answer
int a = 0, b = 1;
System.out.print(a + " " + b + " ");
for (int i = 3; i <= 8; i++)
{
int c = a + b;
System.out.print(c + " ");
a = b; b = c;
}Output:
0 1 1 2 3 5 8 13
Pehle do terms loop se bahar print hote hain, isliye loop 3 se shuru hota hai.
Show Answer
int n = 29, c = 0;
for (int i = 1; i <= n; i++)
if (n % i == 0) c++;
System.out.println(n + " has " + c + " factors -> "
+ (c == 2 ? "Prime" : "Not Prime"));Output:
29 has 2 factors -> Prime
Factor-count wala tareeka sabse safe hai: exactly 2 factors = prime. Isse 1 aur 2 jaise edge cases apne aap sahi ho jaate hain.
for se banao:* ** *** ****
Show Answer
for (int i = 1; i <= 4; i++)
{
for (int j = 4; j > i; j--) System.out.print(" ");
for (int j = 1; j <= i; j++) System.out.print("*");
System.out.println();
}Row i mein (4 − i) spaces aur i stars hain. Do inner loops, ek hi outer loop.
while loop mein andar wale counter ko reset na karne se kya hota hai?Show Answer
Andar wala loop sirf pehli baar chalega. Uske baad uska counter apni final value par atka rehta hai, condition turant false milti hai, aur body dobara chalti hi nahi. Isliye inner counter ki initialization hamesha outer loop ke andar honi chahiye. (Yaad rahe — nested while CISCE syllabus ke bahar hai; yeh sirf samajh ke liye hai.)
Aage kya? Loops aur conditionals mil kar poora logic bana dete hain — ab agla padav hai apne methods likhna. Peeche jaana ho toh Conditional Constructs, Operators & Expressions, Values & Data Types aur Java Basics & OOP Concepts revise kar lo. Poora section: ICSE Class 10 hub.
Kaizen: Roz ek loop uthao aur uski dry-run table poori likho — bilkul us format mein jo while Loop section mein di gayi hai: har variable ka ek column, condition ka ek, aur aakhri exit row zaroor. Do hafte mein output questions dekhte hi answer dikhne lagega. 小さな改善, har din. 🌱
