switch स्टेटमेंट
if / else तब चमकता है जब सवाल हाँ/नहीं या रेंज हो। कभी सवाल अलग होता है: कई तय मानों में कौन सा है? दिन कोड 1…7, स्टेटस "ok" / "warn" / "err", मेनू कुंजी। उस रूप के लिए switch साफ़ औज़ार है। ब्रांचिंग आप जानते हैं; यहाँ एक मान को कई लेबल वाले case से मिलाते हैं।
switch क्या करता है?
switch कोष्ठक में एक व्यंजक देखता है। उस मान की तुलना हर case लेबल से करता है। मिलान पर उसी रास्ते के स्टेटमेंट चलते हैं। break switch छोड़ देता है ताकि आगे के case न चलें। default तब चलता है जब कोई case न मिला।
टुकड़े एक नज़र में
📊 रोजमर्रा के switch टुकड़े
| कीवर्ड | रोज की पढ़त | आम उपयोग |
|---|---|---|
switch |
इस मान को देखो… | चुनाव खोलना |
case |
अगर इस लेबल के बराबर… | एक तय विकल्प |
break |
यहीं रुक; switch छोड़ो | मिलान के बाद खत्म |
default |
अगर कुछ न मिला… | बैकअप रास्ता |
मिलान सख्त समानता जैसा है (=== का विचार)। संख्या वाला case अंकों की स्ट्रिंग से नहीं मिलता। मान और लेबल एक ही आकार में रखें।
let day = 3;
switch (day) {
case 1:
console.log("Mon");
break;
case 2:
console.log("Tue");
break;
case 3:
console.log("Wed");
break;
default:
console.log("other");
}
एक मान, कई लेबल वाले रास्ते
यहाँ day 3 है, इसलिए case 3 चलता है और कंसोल Wed प्रिंट करता है। case 1 और 2 जाँचे गए और छूटे। break के बाद switch खत्म — default नहीं चलता।
बिना break के JavaScript अगले case बॉडी में भी चला जाता। इसे fall-through कहते हैं। शुरुआती लगभग हमेशा हर पूरे case के बाद break चाहते हैं।
let day = 2;
switch (day) {
case 1:
console.log("Mon");
case 2:
console.log("Tue");
case 3:
console.log("Wed");
break;
default:
console.log("other");
}
break न हो तो आगे के case भी चलते हैं
day 2 है। मिलान case 2 से शुरू होता है, Tue छपता है, फिर case 3 में जाता है और break से पहले Wed भी छपता है। एक लेबल चाहिए था; दो मिल गए। जानबूझकर कोड साझा न कर रहे हों तो हर पूरे case के नीचे break रखें।
let day = 9;
switch (day) {
case 1:
console.log("Mon");
break;
case 2:
console.log("Tue");
break;
default:
console.log("other");
}
default मतलब «इनमें से कोई नहीं»
day 9 है। कोई case नहीं मिलता, इसलिए default चलता है और आप other देखते हैं। जब अप्रत्याशित मान को भी सुरक्षित संदेश चाहिए तो default रखें। चुप्पी ठीक हो तभी हटाएँ।
let status = "warn";
switch (status) {
case "ok":
console.log("green");
break;
case "warn":
console.log("yellow");
break;
case "err":
console.log("red");
break;
default:
console.log("unknown");
}
case स्ट्रिंग भी हो सकते हैं
status "warn" है, इसलिए आप yellow देखते हैं। फॉर्म या API के छोटे कोड के लिए स्ट्रिंग case आम हैं। «स्कोर 60 से 90» जैसी रेंज अभी भी if / else if की हैं — switch अलग-अलग लेबल चाहता है।
let day = 1;
let label;
switch (day) {
case 1:
label = "Mon";
break;
case 2:
label = "Tue";
break;
default:
label = "other";
}
console.log(label);
मिलान का नतीजा नाम दें
हर case (और default) में label सेट करें, फिर बाद में एक बार इस्तेमाल करें। यहाँ label "Mon" बन जाता है। वही पैटर्न जो if / else में देखा — पहले चुनें, फिर इस्तेमाल करें।
चुना रास्ता पेज पर दिखाएँ
switch से छोटा संदेश बनाएँ, फिर पेज पर लिखें।
<!DOCTYPE html>
<html>
<head>
<title>Switch — page choice</title>
</head>
<body>
<p id="out">…</p>
<script>
let day = 3;
let msg;
switch (day) {
case 1:
msg = "Mon";
break;
case 2:
msg = "Tue";
break;
case 3:
msg = "Wed";
break;
default:
msg = "other";
}
let box = document.getElementById("out");
box.textContent = "day=" + msg;
</script>
</body>
</html>
day 3 है, पेज day=Wed दिखाता है। day को 9 करें, रीफ़्रेश करें — day=other दिखना चाहिए। अगला पाठ (for) काम कई बार दोहराता है; «कौन सा तय लेबल?» के लिए औज़ार switch ही रहता है।
खुद आज़माएँ
let day = 1पर ऐसाswitchबनाएँ जो case1पर"Mon"लॉग करे।2और3के लिए case जोड़ें, हर एक के बादbreak।dayको9करें और देखेंdefault"other"लॉग करता है।- स्ट्रिंग
statusपर"ok","warn","err"से स्विच करें। - थोड़ी देर के लिए एक
breakहटाएँ और कंसोल में fall-through देखें। - HTML डेमो में सिर्फ
dayबदलें, रीफ़्रेश करें, नयाday=पाठ पढ़ें।
आम गलतियाँ
- case के बाद
breakभूलना (आगे के case भी चलते हैं) - खुली रेंज (
score >= 60) के लिएswitch— बेहतरif/else if - प्रकार मिलाना ताकि संख्या कभी स्ट्रिंग case से न मिले
defaultछोड़ना जब अज्ञात मान को अभी भी संदेश चाहिए- हर
ifकोswitchसे बदलना जब जाँच तय लेबल सूची न हो
सार
switchएक मान को कईcaseलेबल से मिलाता हैbreakमिलान के बाद switch रोकता हैdefaultतब चलता है जब कुछ न मिला- अलग-अलग मानों के लिए अच्छा; रेंज
if/else ifपर रहें - बाद में नतीजा चाहिए तो लेबल रखें; ज़रूरत हो तो पेज पर दिखाएँ
- अगला: for लूप — तय बार काम दोहराना
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी