लोड हो रहा है...

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 अंकों की स्ट्रिंग से नहीं मिलता। मान और लेबल एक ही आकार में रखें।

सादा switch

javascript
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 चाहते हैं।

break क्यों ज़रूरी

javascript
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 रखें।

कुछ न मिले तो default

javascript
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 रखें। चुप्पी ठीक हो तभी हटाएँ।

स्ट्रिंग case

javascript
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 अलग-अलग लेबल चाहता है।

चुना लेबल रखना

javascript
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 से छोटा संदेश बनाएँ, फिर पेज पर लिखें।

switch से पेज चुनाव

html
<!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 ही रहता है।

खुद आज़माएँ

  1. let day = 1 पर ऐसा switch बनाएँ जो case 1 पर "Mon" लॉग करे।
  2. 2 और 3 के लिए case जोड़ें, हर एक के बाद break।
  3. day को 9 करें और देखें default "other" लॉग करता है।
  4. स्ट्रिंग status पर "ok", "warn", "err" से स्विच करें।
  5. थोड़ी देर के लिए एक break हटाएँ और कंसोल में fall-through देखें।
  6. 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 लूप — तय बार काम दोहराना

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
8
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी