कोई भी कंपाइलर कूद तालिका बना देगा यदि यह सत्यापित कर सकता है कि मान उचित रूप से कॉम्पैक्ट हैं। (मुझे संदेह है कि वे इस मामले में हैं, 10. के गुणक होने के नाते)
यह एक माइक्रो-ऑप्टिमाइज़ेशन है। सूक्ष्म अनुकूलन केवल तभी समझ में आता है जब आप जानते हैं कि यह करता है। आम तौर पर, फ़ंक्शन कॉल के रूप में, कहीं और "फ्राइंग मछली" होती है जो बिना किए जा सकते हैं। हालांकि, अगर आपने पहले से ही इस कोड से डेलाइट्स को ट्यून किया है, और आपकी प्रोफाइलिंग से पता चलता है कि इन आईएफ स्टेटमेंट्स (और उनकी सामग्री के लिए नहीं) में एक अच्छा अंश (जैसे 10% या अधिक) समय जा रहा है तो यह मदद करता है। ऐसा हो सकता है, उदाहरण के लिए, बाइट-कोड दुभाषिया में।
जोड़ा गया: switch
का उपयोग करने के लिए मुझे एक और कारण है, भले ही यह एक कूद तालिका नहीं बनाता है - एक डीबगर में कोड के माध्यम से कदम उठाने पर, यह मुझे उचित मामले में सीधे चला जाता है, बजाय मुझे कदम उठाने के बजाय बहुत झूठी if
बयान। डीबग करना आसान बनाता है।
स्रोत
2010-08-02 12:54:24
का शिकार [ "और अगर" "स्विच की तुलना में तेजी() मामले है "?] (http://stackoverflow.com/questions/767821/is-else-if-faster-than-switch-case), [जावा में स्विच स्टेटमेंट बनाम/अन्य के सापेक्ष प्रदर्शन अंतर क्या है?] (http://stackoverflow.com/questions/2086529/what-is-the-relative-performance-difference-of-if-else-versus-switch-statement-in), [यदि बनाम स्विच स्पीड] (http://stackoverflow.com/questions/445067/if-vs-switch-speed), आदि .. – BalusC
यह एक डुप्लिक नहीं है क्योंकि यह प्रश्न जावा विशिष्ट है। – sixtyfootersdude
असल में आप सही हैं। यह http://stackoverflow.com/questions/2086529/what-is-the-relative-performance-difference-of-if-else-versus-switch-statement-in का एक डुप्लिकेट है। यह दूसरों की एक डुप्ली नहीं है हालांकि वे जावा विशिष्ट नहीं हैं। परेशान करना कितना दक्षता और प्रदर्शन अलग-अलग टैग हैं। – sixtyfootersdude