2010-02-10 4 views
10

एक स्विच स्टेटमेंट में "मामले" होते हैं ...क्या स्विच फ़ंक्शन में उपयोग करने के लिए कोई "अन्य केस" है?

लेकिन क्या अन्य सभी मामलों के लिए कोई और "मामला" मामला है?

इसका जवाब ...

कभी नहीं मिल गया है पूर्व:

switch ($var){ 
    case "x": 
     do stuff; 
    break; 
    case "y": 
     do stuff; 
    break; 
    else: // THIS IS WHAT I WOULD LIKE 
     do stuff; 
    break; 
} 

उत्तर

33
default: 
     do stuff; 
break; 

आमतौर default खंड सामान्य पठनीयता के लिए अपने अन्य case खंड के अंत में होना चाहिए।

आप भी इस तरह देखने के लिए अपने कोड में अपने break बयान पुन: प्रारूपित करना चाहते हो सकता है:

switch ($var){ 
    case "x": // if $var == "x" 
     do stuff; 
     break; 
    case "y": // if $var == "y" 
     do stuff; 
     break; 
    default: // if $var != "x" && != "y" 
     do stuff; 
     break; 
} 

switch स्टेटमेंट उपलब्ध here और here पर अतिरिक्त जानकारी।

+0

+1 छोटा और प्यारा! – AntonioCS

3

के रूप में दान कहा लेकिन पूर्ण रूप में अगर यह मदद करता है ...

switch ($var) { 
    case "x": 
     // do stuff 
     break; 
    case "y": 
     // do stuff 
     break; 
    default: 
     // do "else" stuff... 
} 
+1

अंतिम मामले पर एनबी कोई ब्रेक क्लॉज आवश्यक नहीं है, चाहे वह "डिफ़ॉल्ट" या "मामला" हो ... – Simon

+1

लेकिन यदि आपका इरादा गिरना नहीं है तो हमेशा 'ब्रेक' रखना अच्छा अभ्यास है। –

1

दूसरों के रूप में कहा। नहीं कि हालांकि डिफ़ॉल्ट भी बीच में शुरुआत में हो सकता है या कहीं बेतहाशा:

switch (foo) { 
case 0: break; 
default: break; 
case 1: break; 
}; 

निश्चित रूप से आप इस करता है, तो उचित नहीं ऐसा नहीं करना चाहिए।

+0

यदि आप नीचे कहीं भी डिफ़ॉल्ट डालते हैं, तो नीचे दिए गए किसी भी मामले को अनदेखा कर दिया जाएगा। – Simon

+0

@ सिमॉन: आप ऐसा क्यों सोचते हैं और खुद को कोशिश नहीं करते? यहां मानक क्या है: 6.4.2/5 [stmt.switch] "जब स्विच स्टेटमेंट निष्पादित किया जाता है, तो उसकी स्थिति का मूल्यांकन किया जाता है और प्रत्येक मामले निरंतर तुलना की जाती है। [...] यदि कोई मामला लगातार स्थिति से मेल नहीं खाता है, और यदि कोई डिफ़ॉल्ट लेबल है, तो नियंत्रण डिफ़ॉल्ट लेबल द्वारा लेबल किए गए कथन पर जाता है। " –

+0

@ सिमॉन: मेरी विफलता, कुछ राजनों के लिए मैं सी मान रहा था। लेकिन यह PHP, ऐसा लगता है: http://de.php.net/manual/en/control-structures.switch.php#87959 –

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