संभव डुप्लिकेट:
is “else if” faster than “switch() case” ?"अगर" बनाम "स्विच"
मैं हाल ही में स्थितियों का एक बहुत का सामना किया है, जहां मैं बहुत ही सरल सशर्त है और आवेदन प्रवाह शाखा की जरूरत है। पूरा मैं क्या कर रहा हूँ की "सरल" का अर्थ सिर्फ एक सादे पुराने if
/elseif
कथन है:
if($value == "foo") {
// ...
} elseif($value == "bar") {
// ...
} elseif($value == "asdf" || $value == "qwerty") {
// ...
}
... लेकिन मैं भी कुछ ऐसा विचार कर रहा हूँ:
switch($value) {
case "foo":
// ...
break;
case "bar":
// ...
break;
case "qwer":
case "asdf":
// ...
}
यह लगता है थोड़ा कम पठनीय, लेकिन शायद यह अधिक प्रदर्शनकारी है? हालांकि, जब वहाँ अधिक से अधिक कर रहे हैं "या" सशर्त में भाव, ऐसा लगता है कि स्विच बयान और अधिक पठनीय और उपयोगी है:
switch($value) {
case "foo":
// ...
break;
case "bar":
case "baz":
case "sup":
// ...
break;
case "abc":
case "def":
case "ghi":
// ...
break;
case "qwer":
case "asdf":
// ...
}
मैं भी विकल्प जहां कोड प्रवाह सरणियों का उपयोग कर branched है देखा है और कार्य:
function branch_xyz() {/* ... */}
function branch_abc() {/* ... */}
function branch_def() {/* ... */}
$branches = array(
"xyz"=>"branch_xyz",
"abc"=>"branch_abc",
"def"=>"branch_def"
);
if(isset($branches[$value])) {
$fname = $branches[$value];
$fname();
}
यह अंतिम विकल्प भी शायद, एक से अधिक फ़ाइलों भर में वितरण किया जा रहा है को लाभ मिलता है, हालांकि यह बहुत बदसूरत है।
प्रदर्शन, पठनीयता और उपयोग में आसानी के मामले में आपको सबसे कम व्यापारिक तरीकों के साथ सबसे अधिक फायदे हैं?
का उपयोग करते हुए 'switch' आपके द्वारा निर्दिष्ट स्थिति की वस्तु के रूप में बेहतर है:
मैं अवधारणा यहाँ बारे में लिखा था। – Sarfraz
प्रदर्शन इसमें वास्तव में भी कारक नहीं है। पहले पठनीय कोड लिखें, फिर प्रोफ़ाइल और ऑप्टिमाइज़ करें जहां बाद में आवश्यक हो। –
डुप्लिकेट, आदि का डुप्लिकेट http://stackoverflow.com/questions/3387758/java-case-statment-or-if-statement- क्षमता- दर्शक –