Java में switch
पूर्णांक 2 को नाम choice के नीचे रखें। एक switch बनाएँ जो case 1, case 2 और case 3 को अलग-अलग println के साथ सूचीबद्ध करे, साथ में default भी। जब आप कंपाइल और चलाएँ, स्क्रीन को mid दिखाना चाहिए — एक पंक्ति — क्योंकि case 2 मेल खाता है। यही इस पन्ने का पाठ है: एक मान, कई स्थिर लेबल, एक चुना हुआ पथ।
एक मान, कई स्थिर लेबल
Dial.java नाम की एक छोटी प्रोग्राम फ़ाइल बनाएँ। पहली पंक्ति पर public class फ़ाइल के नाम से मेल खाना चाहिए: public class Dial। इस फ़ाइल में पुरानी Gate या Mint क्लास न रखें; कंपाइलर अपेक्षा करता है कि क्लास का नाम और फ़ाइल का नाम एक हों।
main के अंदर, switch से पहले एक पूर्णांक रखें:
int choice = 2;
यह पंक्ति कुछ नहीं छापती। वह केवल नाम choice को मान 2 देती है। choice छोटे c से शुरू होता है। 2 के आसपास उद्धरण नहीं हैं। अर्धविराम रखने वाली पंक्ति खत्म करता है। उसके बाद खुद switch आता है:
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
break;
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
शब्द switch छोटे अक्षरों में है। कोष्ठक के अंदर नाम choice बैठता है — वही मान जिसकी Java हर case लेबल से तुलना करेगी। हर case पंक्ति दोबिंदु से खत्म होती है, अर्धविराम से नहीं। case 2 के नीचे System.out.println("mid"); बैठता है, फिर शब्द break और अर्धविराम। जब choice में 2 हो, Java case 2 में जाता है, mid छापता है, break पर पहुँचता है और पूरे switch से निकल जाता है। इस चलान में case 3 और default नहीं चलते। कंपाइल से पहले फ़ाइल सहेजें।
प्रोग्राम जो mid छापता है
यही वह संस्करण है जिसे आप पहले कंपाइल करते हैं। choice 2 है, इसलिए मेल खाने वाला लेबल case 2 है।
public class Dial {
public static void main(String[] args) {
int choice = 2;
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
break;
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
}
}
उस फ़ोल्डर से जहाँ Dial.java है, javac Dial.java चलाएँ। जब ब्रेसिज़, कोष्ठक और दोबिंदु मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Dial चलाएँ — java Dial.java नहीं। दूसरी कमांड से .java अंत हटा दें। ये दोनों कमांड Windows और macOS पर एक जैसी काम करती हैं; इस पन्ने को किसी सिस्टम के लिए अलग शेल वर्तनी की ज़रूरत नहीं। प्रोग्राम को mid छापकर रुक जाना चाहिए। वह आपसे टाइप की प्रतीक्षा नहीं करता। अगर टर्मिनल कुंजीबोर्ड इनपुट का इंतज़ार करे, तो पुराने अभ्यास का nextLine अभी फ़ाइल में है। उस कॉल को मिटाएँ और ऊपर वाला int साथ switch रखें। गलत स्क्रीन पंक्ति के लिए नई JDK स्थापना की ज़रूरत नहीं।
क्यों mid और low या high नहीं? क्योंकि कोष्ठक में मान 2 था, और case 2 वही लेबल है जो मेल खाता है। इस चलान पर Java अंक 2 नहीं छापता जब तक आप उस अंक के लिए अलग println न लिखें। वह वही छापता है जो मेल खाते case के नीचे println चलाता है। कोष्ठक वह मान रखते हैं जिसकी तुलना होती है। हर case लेबल यहाँ एक स्थिर पूर्णांक है। break पूरे switch को खत्म करता है ताकि बाद के case चुप रहें। default उन मानों का इंतज़ार करता है जो किसी case से मेल नहीं खाते — जब choice 2 हो, default बेकार रहता है।
जब कोई case मेल न खाए
केवल रखा हुआ मान बदलें:
int choice = 9;
switch की संरचना वैसी ही छोड़ दें। अब case 1, case 2 या case 3 में से कोई मेल नहीं खाता। Java default पर जाता है और System.out.println("none"); चलाता है। स्क्रीन को एक पंक्ति none दिखानी चाहिए।
public class Dial {
public static void main(String[] args) {
int choice = 9;
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
break;
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
}
}
फिर से कंपाइल और चलाएँ: javac Dial.java, फिर java Dial। आपको none दिखना चाहिए। आपने case पंक्तियाँ नहीं लिखीं — केवल choice के नीचे मान बदला। none देखने के बाद, अगर पहला डेमो वापस चाहिए, int choice = 2; लौटा सकते हैं। दोनों संस्करण सही Java हैं। वे एक ही switch आकार सिखाते हैं — एक बार मेल खाते case के साथ और एक बार default के साथ।
default वाला चलान एक बार और क्रम से पढ़ें। choice में 9 है। switch (choice) शुरू होता है। case 1 मेल नहीं खाता। case 2 मेल नहीं खाता। case 3 मेल नहीं खाता। नियंत्रण default पर जारी रहता है। println("none") चलता है। स्क्रीन पर एक पंक्ति। अंक 9 खुद नहीं दिखता जब तक आप जानबूझकर उसे न छापें।
break बाद के case रोकता है
break सजावट नहीं है। बिना इसके, मेल खाने के बाद Java अगले case की पंक्तियाँ भी चला सकता है। यह नीचे गिरना (fall-through) शुरुआती को चौंकाता है। यहाँ एक छोटा डेमो है जो जानबूझकर case 2 के बाद break भूलता है — इसे अलग कोशिश में रखें, या मुख्य फ़ाइल बनाने से पहले ध्यान से पढ़ें:
public class Dial {
public static void main(String[] args) {
int choice = 2;
switch (choice) {
case 1:
System.out.println("low");
break;
case 2:
System.out.println("mid");
case 3:
System.out.println("high");
break;
default:
System.out.println("none");
break;
}
}
}
choice 2 होने पर और case 2 के नीचे break न होने पर, स्क्रीन एक पंक्ति mid और अगली पंक्ति high दिखा सकती है। case 2 मेल खाया, mid छापा, फिर case 3 में गिर गया और high भी छापा। पाठ के पहले डेमो हर case के नीचे break रखते हैं ताकि हर पथ ठीक एक पंक्ति लिखे। Dial.java को फिर से रखी हुई पाठ फ़ाइल मानने से पहले break वापस लगाएँ।
नियम जो लेबल साफ़ रखते हैं
switch वाले मान के आसपास कोष्ठक ज़रूरी हैं। बिना कोष्ठक के switch choice { … } लिखने पर javac असफल होता है। इस पन्ने का हर case लेबल एक पूर्णांक स्थिरांक है: case 1:, case 2:, case 3:। लेबल के बाद दोबिंदु आता है। दोबिंदु की जगह अर्धविराम से case 2; लिखना इस पाठ का आकार नहीं है। default के बाद कोई मान नहीं — केवल default: फिर «कुछ मेल नहीं खाया» वाली पंक्तियाँ।
switch वही औज़ार नहीं जो if है। if (ready) सच-या-झूठ सवाल पूछता है। switch (choice) एक मान को स्थिर लेबलों की सूची से मिलाता है। boolean के साथ switch (ready) न लिखें और Gate.java जैसा पाठ आकार न उम्मीद करें। इस पन्ने के डेमो int नाम choice और पूर्णांक case लेबल पर रहें। if (score > 10) जैसी तुलनाएँ जब सीमा चाहिए तब भी if की हैं; switch तब चमकता है जब मान अलग-अलग और पहले से ज्ञात हों।
एक आम गलती स्वयं सिंटैक्स छापना है: System.out.println("switch (choice)");। वह अक्षर switch (choice) लिखता है। वह कोई case नहीं चुनता। दूसरी गलती वही main में Gate वाला if / else डेमो छोड़ना है और सोचना कि स्क्रीन mid की जगह pass क्यों दिखाती है। इस सत्र के main में केवल int और switch होना चाहिए।
📊 choice और स्क्रीन
| choice | स्क्रीन |
|---|---|
| 1 | low |
| 2 | mid |
| 3 | high |
| 9 | none |
तालिका को चलाने के बाद जाँच के रूप में इस्तेमाल करें, चलाने की जगह नहीं। पहली डेमो में choice 2 mid छापता है। दूसरी डेमो में choice 9 none छापता है। choice 1 low छापता है। choice 3 high छापता है। अगर choice 2 के लिए mid और high दोनों आएँ, तो case 2 के नीचे break गायब है — break सुधारें; Java फिर से स्थापित न करें।
अब आप क्या कर सकते हैं
आप एक पूर्णांक रख सकते हैं, उसे switch (…) में डाल सकते हैं, और हर स्थिर मान को println और break वाला अपना case दे सकते हैं। जब कोई case मेल खाए, वह पंक्ति चलती है; जब कुछ न मिले, default चलता है। अगला पन्ना for है, जहाँ वही ब्लॉक पंक्तियाँ बार-बार चल सकती हैं जब काउंटर बदलता है।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी