Switch Case
switch-case क्या है
switch-case एक value को कई fixed options से तुलना करके मेल खाता वाला चलाता है। जब आप वरना एक ही variable जाँचती लंबी else if ladder लिखते, तब switch ज़्यादा साफ़ और पढ़ने में आसान है।
एक बुनियादी switch
int day = 3;
switch (day) {
case 1: System.out.println("Monday"); break;
case 2: System.out.println("Tuesday"); break;
case 3: System.out.println("Wednesday"); break;
default: System.out.println("Other day");
}
switch day को हर case से जाँचता है। यह case 3 से मेल खाता है, Wednesday print करता है, और break उसे वहीं रोक देता है।
break क्यों ज़रूरी है
int n = 1;
switch (n) {
case 1: System.out.println("One");
case 2: System.out.println("Two"); // ऊपर कोई break नहीं!
default: System.out.println("Done");
}
Two
Done
break बिना, Java "fall through" करके अगले cases भी चलाता है। इसीलिए हर case आमतौर पर break से ख़त्म होता है — मेल के बाद रुकने को।
default case
char grade = 'X';
switch (grade) {
case 'A': System.out.println("Excellent"); break;
case 'B': System.out.println("Good"); break;
default: System.out.println("Invalid grade");
}
default तब चलता है जब और कुछ मेल न खाए — अंतिम else जैसा। अप्रत्याशित values संभालने को इसे हमेशा शामिल करना अच्छी practice है।
जानबूझकर fall-through
int month = 4;
switch (month) {
case 3: case 4: case 5:
System.out.println("Spring"); break;
case 6: case 7: case 8:
System.out.println("Summer"); break;
}
कभी fall-through उपयोगी है: बीच में code बिना cases एक साथ रखना कई values को एक action साझा करने देता है। यहाँ महीने 3, 4 और 5 सब "Spring" print करते हैं।
आधुनिक switch
int day = 3;
String name = switch (day) {
case 1 -> "Monday";
case 2 -> "Tuesday";
case 3 -> "Wednesday";
default -> "Other";
};
System.out.println(name);
नया Java एक arrow रूप देता है जिसमें कोई fall-through और कोई break नहीं। यह सीधे value भी लौटा सकता है, code को छोटा और सुरक्षित बनाकर।
आम गलतियाँ
breakभूलना। Classic switch में break छूटना fall-through कराता है।- कोई default case नहीं। बेमेल values को हमेशा
defaultसे संभालिए। - Ranges इस्तेमाल करना। Case एक exact value होना चाहिए —
case > 5invalid है; ranges को if-else इस्तेमाल कीजिए। - गलत type। Cases switch variable के type से मेल खाने चाहिए (int, char, String, enum)।
सारांश
- switch-case एक value को कई fixed cases से तुलना करता है।
- Fall-through बचाने को हर classic case को
breakसे ख़त्म कीजिए। defaultकिसी case से न मिलने वाली values संभालता है।- Stacked cases जानबूझकर एक action साझा कर सकते हैं।
- आधुनिक arrow switch break से बचता है और value लौटा सकता है।
आगे, तुलना कीजिए if-else से, या menu बनाइए switch calculator में।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Java में switch-case क्या है?
switch में break क्यों चाहिए?
break बिना, Java अगले cases भी चलाता रहता है — इसे fall-through कहते हैं। हर case के अंत में break जोड़ना उसे मेल खाते के बाद रोक देता है, जो आमतौर पर आप चाहते हैं।default case क्या है?
default case तब चलता है जब कोई और case मेल न खाए। यह if-else ladder के अंतिम else जैसा काम करता है, आपके न बताए किसी भी value को संभालकर।switch किन types पर काम करता है?
Java में आधुनिक switch क्या है?
case 1 -> ...; जिसमें कोई fall-through नहीं और break की ज़रूरत नहीं। यह value भी लौटा सकता है, कई cases को switch छोटा और सुरक्षित बनाकर।