switch स्टेटमेंटif/else स्टेटमेंट की तरह, switch स्टेटमेंट भी शर्त के हिसाब से कोड चलाकर प्रोग्राम का प्रवाह बदलने देता है। फर्क बस यह है कि switch स्टेटमेंट किसी प्रिमिटिव या स्ट्रिंग एक्सप्रेशन की वैल्यू की तुलना सिर्फ पहले से तय कॉन्स्टेंट वैल्यू से ही कर सकता है।
switch स्टेटमेंट इस्तेमाल करते समय कुछ कीवर्ड बहुत काम आते हैं।
switch: यह कीवर्ड आपको स्विच का ढाँचा घोषित करने देता है।
इसके बाद वह एक्सप्रेशन या वेरिएबल आता है जो नतीजा बदलेगा।case: नतीजे की अलग-अलग संभावनाएँ घोषित करने के लिए आप इस कीवर्ड का उपयोग करेंगे।break: जब आपका मनचाहा हिस्सा पूरा हो जाए, उसके बाद स्विच का चलना रोकने के लिए break कीवर्ड बहुत उपयोगी है।
अगर आप इसे भूल गए, तो प्रोग्राम आगे चलता रहेगा और नतीजे आपकी उम्मीद से अलग आ सकते हैं।default: जैसा कि नाम से पता चलता है, जब आपके एक्सप्रेशन का नतीजा किसी और केस से मेल न खाए, तब इसे डिफाल्ट नतीजे के तौर पर इस्तेमाल कीजिए।सबसे सरल रूप में switch स्टेटमेंट किसी प्रिमिटिव या स्ट्रिंग एक्सप्रेशन की जाँच करता है और उसकी वैल्यू के आधार पर फैसला लेता है। उदाहरण के लिए:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
आप एक ऐसा सिस्टम बना रहे हैं जो एक फुटबॉल/सॉकर क्लब की वेबसाइट के कर्मचारियों को मैचों की रिपोर्ट तैयार करने में मदद करेगा। अलग-अलग स्रोतों से डेटा मिलता है और साफ किए जाने के बाद उसे एक ही स्ट्रीम में भेज दिया जाता है।
यह टीम हमेशा 4-3-3 फॉर्मेशन में ही खेलती है। उसने 1965 में नियमों में हुए उस बदलाव को कभी स्वीकार नहीं किया, जो सब्स्टिट्यूशन की अनुमति देता था। बड़े स्क्वाड की तो बात ही क्या।
खिलाड़ियों के विवरण इस प्रकार हैं:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
static FootballMatchReports.onField() मेथड को लागू कीजिए, जो खिलाड़ी के शर्ट नंबर के आधार पर उसका विवरण दे।
FootballMatchReports.onField(10);
// => "striker"
FootballMatchReports.onField() मेथड को इस तरह बदलिए कि जब 1-11 की सीमा से बाहर का कोई शर्ट नंबर आए, तो वह 'invalid' लौटाए।
FootballMatchReports.onField(13);
// => "invalid"
Exercism पर साइन अप कीजिए और Java को 26 कॉन्सेप्ट158 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।