Java में if और else
अब तक आप true या false रखते थे, या && जैसे चिह्नों से दो उत्तरों से एक true या false बनाते थे। वे पन्ने अभी भी एक नाम के नीचे एक मान के साथ खत्म होते थे। यह पन्ना उसी मान से और काम लेता है: Java true या false देखता है और पंक्तियों के केवल एक समूह को चलाता है। इस चुनाव का औज़ार if है। दूसरा समूह, जब ज़रूरत हो, else है।
एक boolean तय करता है कौन सा ब्लॉक चले
Gate.java नाम की एक छोटी प्रोग्राम फ़ाइल बनाएँ। पहली पंक्ति पर public class फ़ाइल के नाम से मेल खाना चाहिए: public class Gate। इस फ़ाइल में पुरानी Mint क्लास न रखें; कंपाइलर अपेक्षा करता है कि क्लास का नाम और फ़ाइल का नाम एक हों।
main के अंदर, पथ चुनने से पहले एक boolean रखें:
boolean ready = true;
यह पंक्ति कुछ नहीं छापती। वह केवल नाम ready को शब्द true देती है। ready छोटे r से शुरू होता है। true के आसपास उद्धरण नहीं हैं। अर्धविराम रखने वाली पंक्ति खत्म करता है। उसके बाद खुद चुनाव आता है:
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
शब्द if छोटे अक्षरों में है: i, फिर f। यह कोई नाम नहीं जो आप खुद बनाएँ। if के बाद जगह ठीक है; बिना जगह के if(ready) भी कंपाइल होता है। कोष्ठक के अंदर नाम ready बैठता है — बिना उद्धरण, बिना ==, बिना &&। जब ready में true हो, Java पहली ब्रेसिज़ जोड़ी में जाता है और System.out.println("pass"); चलाता है। pass के आसपास उद्धरण स्क्रीन के लिए अक्षर चिह्नित करते हैं। वे अक्षर — p, a, s, s — वही हैं जो आपको एक पंक्ति में दिखने चाहिए। इस चलान में else ब्लॉक पूरी तरह छोड़ दिया जाता है। कंपाइल से पहले फ़ाइल सहेजें।
प्रोग्राम जो pass छापता है
यही वह संस्करण है जिसे आप पहले कंपाइल करते हैं।
public class Gate {
public static void main(String[] args) {
boolean ready = true;
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
}
}
उस फ़ोल्डर से जहाँ Gate.java है, javac Gate.java चलाएँ। जब ब्रेसिज़ और कोष्ठक मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Gate चलाएँ — java Gate.java नहीं। दूसरी कमांड से .java अंत हटा दें। ये दोनों कमांड Windows और macOS पर एक जैसी काम करती हैं; इस पन्ने को किसी सिस्टम के लिए अलग शेल वर्तनी की ज़रूरत नहीं। प्रोग्राम को pass छापकर रुक जाना चाहिए। वह आपसे टाइप की प्रतीक्षा नहीं करता। अगर टर्मिनल कुंजीबोर्ड इनपुट का इंतज़ार करे, तो पुराने अभ्यास का nextLine अभी फ़ाइल में है। उस कॉल को मिटाएँ और ऊपर वाला boolean साथ if / else रखें। गलत स्क्रीन पंक्ति के लिए नई JDK स्थापना की ज़रूरत नहीं।
क्यों pass और wait नहीं? क्योंकि कोष्ठक में परीक्षा true थी। इस चलान पर Java शब्द true नहीं छापता। वह वही छापता है जो चुनी हुई ब्रेसिज़ के अंदर println चलाता है। तीन काम याद रखें: कोष्ठक परीक्षा रखते हैं, ब्रेसिज़ उन पंक्तियों को जोड़ती हैं जो साथ हैं, और केवल println स्क्रीन पर लिखता है। अगर स्क्रीन true दिखाए, तो शायद आप अभी भी खुद boolean छाप रहे हैं, या पुराना जोड़ने-वाले-चिह्न वाला डेमो अभी main में है। जब ready true हो, उस लिखने वाली पंक्ति को if ब्रेसिज़ के अंदर println("pass") से बदलें।
जब ready false हो
केवल रखा हुआ मान बदलें:
boolean ready = false;
if / else संरचना वैसी ही छोड़ें। अब परीक्षा असफल होती है, इसलिए Java पहली ब्रेसिज़ छोड़ता है और उसके बजाय else ब्रेसिज़ चलाता है। स्क्रीन को एक पंक्ति wait दिखानी चाहिए।
public class Gate {
public static void main(String[] args) {
boolean ready = false;
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
}
}
फिर से कंपाइल और चलाएँ: javac Gate.java, फिर java Gate। आपको wait दिखना चाहिए। ध्यान दें कि आपने if पंक्ति या else पंक्ति नहीं लिखी — केवल ready के नीचे का मान बदला। wait देखने के बाद, पहली डेमो पर लौटने के लिए boolean ready = true; वापस रख सकते हैं। दोनों संस्करण सही Java हैं। वे विपरीत परीक्षाओं के साथ वही if / else आकार सिखाते हैं।
false चलान को एक बार और क्रम से पढ़ें। ready में false है। if (ready) पूछा जाता है। उत्तर false है, इसलिए पहले { और उसके जोड़े } के बीच हर पंक्ति छोड़ दी जाती है — println("pass") सहित। नियंत्रण else पर जारी रहता है। else ब्रेसिज़ के बीच की पंक्तियाँ चलती हैं, इसलिए println("wait") चलता है। स्क्रीन पर एक पंक्ति। दूसरी पंक्ति नहीं। शब्द false खुद तब तक नहीं दिखता जब तक आप जानबूझकर उसे न छापें।
वे नियम जो चुनाव साफ़ रखते हैं
परीक्षा के चारों ओर कोष्ठक ज़रूरी हैं। बिना कोष्ठक के if ready { … } लिखने पर javac असफल होता है। इस पन्ने की परीक्षा एक boolean है: ready जैसा नाम, या बिना उद्धरण के नंगे शब्द true या false। if ("true") उन जगहों पर अक्षर रखता है जहाँ boolean परीक्षा चाहिए; javac गलती बताता है। उद्धरण हटाएँ, या boolean नाम ही रखें। अकेला पूर्णांक जैसे if (1) इस पाठ की तैयारी रखने का तरीका नहीं है; true, false, या boolean नाम पर रहें।
पाठ पढ़ने के लिए ब्रेसिज़ मायने रखती हैं। यह पन्ना हर पथ को हमेशा { } में लपेटता है। Java बिना ब्रेसिज़ के एक-पंक्ति if भी अनुमति देता है, लेकिन जैसे ही आप उस if के नीचे दूसरी पंक्ति जोड़ते हैं, केवल पहली पंक्ति परीक्षा से जुड़ी रहती है जब तक ब्रेसिज़ न हों। शुरुआती यह बात आसानी से खो देते हैं। दोनों डेमो में ब्रेसिज़ रखें ताकि हर पथ साफ़ हो: परीक्षा के बाद एक खुलने वाली ब्रेस, else से पहले एक बंद होने वाली, फिर else के लिए एक और जोड़ी।
else किसी if का है। अकेला else javac को असफल करता है। इस पन्ने पर एक if का एक else है। जब आपको केवल true पथ से मतलब हो तो else के बिना if लिख सकते हैं; पहली शिक्षण डेमो अभी भी दोनों पक्ष दिखाती है ताकि द्विभाजन दिखे। कई निश्चित मानों में से चुनना बाद के पन्ने पर switch है — यहाँ दूसरे else से तीसरी शाखा न बनाएँ।
आप परीक्षा बिना अलग नाम के भी लिख सकते हैं: if (true) { … } else { … }। वह कंपाइल और चलता है। डेमो ready उपयोग करते हैं ताकि आप देखें कि रखा हुआ boolean चुनाव चलाता है; true और false रखना सीखने के बाद प्रोग्राम अक्सर इसी आकार के होते हैं। if (score > 10) जैसी तुलनाएँ तब आती हैं जब आप इस true / false द्विभाजन से सहज हों; यह पन्ना परीक्षा को वही boolean मान रखता है जिसे आप पहले से समझते हैं।
📊 ready और स्क्रीन
| ready | स्क्रीन |
|---|---|
| true | pass |
| false | wait |
तालिका को चलान के बाद जाँच के रूप में उपयोग करें, चलान के बदले नहीं। पहली डेमो के साथ true शब्द pass छापता है। दूसरी डेमो के साथ false शब्द wait छापता है। अगर दोनों println पंक्तियाँ किसी तरह चल जाएँ, तो ब्रेसिज़ या if / else जोड़ी गलत है — संरचना ठीक करें, Java फिर से स्थापित न करें।
एक आम उलझन खुद वाक्यविन्यास छापना है: System.out.println("if (ready)");। वह अक्षर if (ready) लिखता है। वह कोई पथ नहीं चुनता। दूसरी उलझन उसी main में && या == डेमो छोड़ना है और सोचना कि स्क्रीन pass की जगह true क्यों दिखाती है। इस सत्र के main में केवल boolean और if / else होना चाहिए।
अब आप क्या कर सकते हैं
आप एक boolean रख सकते हैं, उसे if (…) में रख सकते हैं, और हर परिणाम को अपनी ब्रेस्ड ब्लॉक दे सकते हैं। जब परीक्षा true हो, एक println चलता है; जब false हो, else वाला println चलता है। अगला पन्ना switch है, जहाँ कई निश्चित मानों को एक true / false द्विभाजन के बजाय अपना case मिलता है।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी