यह प्रश्न विशेष रूप से दिलचस्प है जब if
ब्लॉक इस प्रकार विधि को समाप्त करता है। यह जावा काम में तुलनित्रों के तरीके पर सीधे लागू होता है।
मैं इस प्रकार प्रत्येक विधि चलाने (bellow) 250.000.000 बार और परिणाम इस प्रकार हैं है:
two values if/else - 6.43 millis
three values if/else/if - 8.66 millis
three values if/if - 9.01 millis
सबसे खराब स्थिति में 1.4 गुना सबसे अच्छा एक से अधिक समय लेता है जबकि सूचना है कि यह है 250 मिलियन बार इन तरीकों में से प्रत्येक को फिर से शुरू करने के कुल योग। यह मानते हुए कि मानव के लिए देरी को समझने में 100 मिलियन लगेंगे और सबसे खराब/बेहतर अंतर 2.58 मिलियन है, इसका मतलब यह होगा कि आपको विभिन्न विधियों के बीच अंतर को समझने के लिए लगभग एक ट्रिलियन (1000 * 1000 मिलियन) पुनरावृत्तियों की आवश्यकता होगी।
यह संक्षेप अप: उपयोग if-else
यह उन मामलों में जहाँ सबसे तेजी से विकल्प भी अधिक स्पष्टता और त्रुटि-रहित होता के साथ एक है में से एक है।
// methods used to measure difference between if and if/else
/** equality is not important **/
private static int comparatorOfIfElse(int a, int b) {
if(a < b) return -1;
else return 1;
}
/** equality is taken into account using if/else **/
private static int comparatorOfIfElseIf(int a, int b) {
if(a < b) return -1;
else if(a > b) return 1;
return 0;
}
/** equality is taken into account using only if **/
private static int comparatorOfIf(int a, int b) {
if(a < b) return -1;
if(a > b) return 1;
return 0;
}
मैं प्रसंस्करण गति के बारे में पता नहीं है, लेकिन आप इतने सारे ब्लॉक अगर है, तो हो सकता है आप एक स्विच कथन का उपयोग पर विचार करना चाहिए। विशेष रूप से एक सप्ताह के दिनों की तरह कुछ के लिए। –
कई if-statement से बदलते समय एक बड़े कार्य परिवर्तन में परिवर्तन होता है यदि अन्यथा कथन। इस बारे में सोचें कि आपका कोड वास्तव में क्या करता है। –