2011-09-26 14 views
30

क्या कॉपी और पेस्टिंग के बिना कोड के उसी ब्लॉक में दो अलग-अलग केस मान असाइन करने का कोई तरीका है? उदाहरण के लिए, 68 और 40 से नीचे एक ही कोड निष्पादित करना चाहिए, जबकि 30 संबंधित नहीं है।जावास्क्रिप्ट स्विच स्टेटमेंट: क्या दो मामलों के लिए एक ही कोड चलाने का कोई तरीका है?

case 68: 
    //Do something 
break; 

case 40: 
    //Do the same thing 
break; 

case 30: 
    //Do something different 
break; 

यह सोचने के लिए कुछ इस तरह काम करना चाहिए (हालांकि यह स्पष्ट रूप से नहीं है) गलत है?

case 68 || 40: 
    //Do something 
break; 

case 30: 
    //Do something else 
break; 

उत्तर

98

बस एक ब्रेक

switch (myVar) { 
    case 68: 
    case 40: 
    // Do stuff 
    break; 

    case 30: 
    // Do stuff 
    break; 
} 
+0

सोनार इसे innapropiate के रूप में पाता है, ¿दूसरा विकल्प? –

16

हाँ, तुम सिर्फ संबंधित case बयान एक दूसरे के बगल, इस तरह से रख:

case 40: // Fallthrough 
case 68: 
    // Do something 
    break; 

case 30: 
    // Do something different 
    break; 

Fallthrough टिप्पणी दो कारणों के लिए है:

  • यह मानव पाठकों को आश्वस्त करता है कि आप जानबूझ कर यह कर रहे हैं
  • यह लिंट-जैसी टूल्स से चेतावनियों को चुप करता है जो संभावित आकस्मिक गिरावट के बारे में चेतावनियां जारी करता है।
+1

मुझे लगता है कि आप कुछ भूल गए हैं। :) – BNL

+0

@BNL: ओह! अब तय - धन्यवाद। – RichieHindle

0

Switch cases can be clubbed as shown in the dig.

इसके अलावा बिना सही एक दूसरे के बाद उन्हें शब्दों में कहें, यह सिर्फ दो मामलों तक सीमित नहीं है, आप इसे किसी को विस्तार कर सकते हैं नहीं। मामलों में से

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ – slfan

-3

आप उपयोग करना चाहिए:

switch condition { 
    case 1,2,3: 
    // do something 
    case 4,5: 
    // do something 
    default: 
    // do something 
} 

मामले अल्पविराम से अलग किया जाना चाहिए।

+0

बदलते हैं तो लिंक-केवल उत्तर अमान्य हो सकते हैं यह केवल गलत है। स्विच स्विच में आपके पास एकाधिक मान नहीं हो सकते हैं –

संबंधित मुद्दे