Theory
वह Menu जो एक Use के बाद मर गया
पिछले lesson में, BookBridge ने अपना menu दिखाया, librarian ने एक book return की, और program खत्म हो गया। अगले student की book issue करने के लिए उसे इसे scratch से फिर से run करना पड़ा।
एक real menu को हर action के बाद वापस आना चाहिए जब तक वह Exit choose न करे। यह repetition है, और Java इसके लिए 3 tools offer करता है: while, do-while और for। वे अक्सर एक-दूसरे को imitate कर सकते हैं; exams और clean code दोनों इस बात की परवाह करते हैं कि जो fit हो वह choose करें।
Theory
Chai के 3 तरह के Rounds
while careful host है: पहले room में झाँकता है, chai सिर्फ़ तभी serve करता है अगर कोई है। शायद किसी को serve न करे।
do-while confident host है: देखने से पहले भी 1 cup poured करता है, फिर check करता है कोई और चाहता है या नहीं। हमेशा कम से कम एक बार serve करता है।
for list वाला caterer है: पहले से जानता है exactly 12 guests हैं, उन्हें एक organised pass में serve करता है, चलते हुए count करता है।
Formula
3 Syntaxes, Exam Form
while (condition) { body }
do { body } while (condition);
for (initialization; condition; update) { body }
do-while की condition के बाद semicolon नोट कीजिए: exams इसके missing होने पर deduct करते हैं। for header में: initialization एक बार run होता है, condition हर pass से पहले check होता है, update हर pass के बाद run होता है।
At a glance
सही Loop Choose करना
| Loop | Condition Check होती है | Minimum Runs | कब Best है |
|---|---|---|---|
| while | Body से पहले | 0 | Repeat count unknown, zero हो सकता है |
| do-while | Body के बाद | 1 | Body को कम से कम एक बार होना चाहिए (menus!) |
| for | Body से पहले | 0 | Repeat count known है (12 books print करना) |
Practical
Menu, do-while से फिर से जीवित
public class MenuLoop {
public static void main(String[] args) {
int choice = 0;
int round = 0;
do {
round++;
System.out.println("Round " + round + ": 1.Issue 2.Return 3.Exit");
choice = 3; // pretend the librarian picks Exit
} while (choice != 3);
System.out.println("Goodbye");
for (int book = 1; book <= 3; book++) {
System.out.println("Book " + book + " on shelf");
}
}
}
Think first
Tap करने से पहले Trace कीजिए
int i = 0; while (i < 3) { i++; } System.out.println(i); पहले हर pass को अपने दिमाग़ में work through कीजिए: क्या print होता है?
Show the answer
3। Trace: i=0, condition 0<3 true, i 1 हो जाता है। फिर 1<3 true, i 2 हो जाता है। फिर 2<3 true, i 3 हो जाता है। अब check फिर से run होता है: 3<3 false है, loop exit हो जाता है, और loop के बाहर का println 3 print करता है। याद रखने वाला pattern: loop variable की final value वह पहली value है जो condition FAIL करती है, वह आख़िरी नहीं जो pass हुई।
Quiz
कौन सा loop guaranteed है अपनी body को कम से कम एक बार execute करने के लिए?
- while
- for
- do-while
- सारे 3 हमेशा कम से कम एक बार run होते हैं
Show the answer
do-while
do-while अपनी condition body के BAAD check करता है, तो पहला pass हमेशा होता है, यही exactly वजह है यह menus के लिए suit करता है: पहले menu दिखाइए, फिर बाद में पूछिए repeat करना है या नहीं। while और for दोनों body से PEHLE check करते हैं, तो शुरुआत में एक false condition का मतलब है 0 executions। Option D वह misconception है जिसे catch करने के लिए यह question exist करता है: entry-controlled loops (while, for) zero बार run हो सकते हैं।
Watch out
2 Silent Loop Killers
Forgotten Update: while (i < 3) अंदर बिना i++ के कभी खत्म नहीं होता। BookBridge freeze हो जाता है, fans spin करते हैं, कुछ crash नहीं होता: एक infinite loop एक hang जैसा feel होता है, और यह सबसे common lab-exam disaster है।
Stray Semicolon: while (i < 3); या for (int i = 0; i < 3; i++); loop से एक EMPTY body attach करता है। नीचे का real block एक बार run होता है, loop खत्म होने के बाद (या कभी नहीं, अगर empty loop infinite है)।
Theory
Loops बाकी Subject को Carry करते हैं
Syntax BCA104 के C जैसा identical है, तो यह purpose वाली revision है। नोट कीजिए BCA204 के Python में क्या कभी नहीं था: एक do-while (आपने इसे while True और break से simulate किया)। यहाँ से, loops BookBridge में हर जगह हैं: Unit 3 Strings के along character by character walk करता है, और Unit 5 की linked lists node by node traverse करती हैं while (current != null) से, जो बस यह lesson है एक object-oriented coat पहने हुए।
Summary
Key takeaways
- while: entry-controlled, body से पहले check करता है, 0 बार run हो सकता है।
- do-while: exit-controlled, body के बाद check करता है, हमेशा कम से कम एक बार run होता है; trailing semicolon याद रखिए।
- for: एक header में initialization; condition; update, known counts के लिए best।
- Menus को do-while चाहिए: एक बार दिखाइए, फिर पूछिए repeat करना है या नहीं।
- Infinite loops missing updates से आते हैं; empty loops condition के बाद एक stray semicolon से आते हैं।
- एक loop variable उस पहली value पर खत्म होता है जो condition fail करती है।
- Memory hook: while पहले झाँकता है, do-while पहले pours करता है, for guests count करता है।