2012-10-06 10 views
8

मैं है दो प्रश्न - (मैं)उपयोग

code-fragment-1 

if(<condition-statement>){ 
} 

else if(<condition-statement-2>){ 
    //statements-1 
} 
//statements-2 

कोड-टुकड़ा-2

if(<condition-statement>){ 
} 

else{ 
    if(<condition-statement-2>){ 
     //statements-1 
    } 
    //statements-2 
} 

उपरोक्त दो कोड के टुकड़े एक ही हैं?

(II) जब अन्य ifs (सी ++ में) उपयोग किए जाते हैं?

उत्तर

9

एकमात्र अंतर उदाहरण में 1 आपके स्टेटमेंट 2 को आपके द्वारा जांच की जाने वाली शर्तों के बावजूद निष्पादित किया जाएगा। उदाहरण 2 में, स्टेटमेंट 2 केवल तभी निष्पादित हो जाएगा जब आपकी if स्थिति गलत है। इसके अलावा, वे मूल रूप से वही हैं।

8

नहीं है, पहले मामले में आप किसी और ब्लॉक केवल तभी <condition-statement> और सत्यापित नहीं है<condition-statement-2> सत्यापित है तभी निष्पादित।

दूसरे मामले में आप अन्य ब्लॉक को निष्पादित करते हैं यदि <codition-statement>सत्यापित नहीं है

इस मामले में तक आपके पास कोई // कथन -2 नहीं है।

प्रश्न के बारे में: अन्यथा कब (सी ++ में) उपयोग किया जाता है?

मूल रूप से इस अन्य निर्माण की अन्य सभी भाषाओं की शर्तों के तहत उपयोग किया जाता है। else संबंधित के विकल्प के रूप में निष्पादित किया गया है, else-if को वैकल्पिक के रूप में निष्पादित किया गया है लेकिन सत्यापित होने के लिए 'संलग्न' if के साथ, अन्यथा निष्पादित नहीं किया गया है। तो वे तार्किक रूप से समकक्ष नहीं हैं।

3

यदि वास्तव में है (स्थिति) कथन;

{} वास्तव में क्या आपको कई कथनों को एक साथ समूहबद्ध करने की अनुमति देता है। आपके दूसरे उदाहरण में आपके पास आपके {} एस के अंदर केवल एक कथन (यदि) है, तो हाँ, दोनों उदाहरण समान हैं, // कथन -2 को छोड़कर हमेशा चलाया जाता है! = True

1

आपके पहले कोड नमूने में , कथन -2 बिना शर्त के निष्पादित किया जाता है। दूसरे में यह सशर्त है। एक ही नहीं।

'और अगर' आम तौर पर पसंद किया जाता है, क्योंकि आप उनमें से अधिकतर अनिश्चित काल को डालने या जोड़ना जारी रख सकते हैं, या 'अन्य' जोड़ सकते हैं, जबकि दूसरे रूप के साथ आपको अंतराल के साथ ब्रेसिज़ के साथ गड़बड़ करना पड़ता है प्रभाव, और आप अर्थशास्त्र को बदलने में जोखिम लेते हैं, जैसा कि आपने वास्तव में अपने दूसरे नमूने में किया है।

+0

एक स्विच स्टेटमेंट हमेशा "अन्य अगर शाखाओं" को प्राथमिकता देना है, या मुझे गलत विचार मिल रहा है – clockw0rk