आप C ++ में शून्य फ़ंक्शन से कैसे बाहर निकलते हैं?


158

यदि आप एक शून्य फ़ंक्शन है तो आप किसी मान को वापस किए बिना किसी फ़ंक्शन से समय से पहले कैसे बाहर निकल सकते हैं? मेरे पास एक शून्य विधि है जो एक निश्चित शर्त सही होने पर इसके कोड को निष्पादित करने की आवश्यकता नहीं है। मैं वास्तव में मूल्य वापस करने के लिए विधि को बदलना नहीं चाहता।


9
इसके बावजूद कि यह एक बहुत ही सरल प्रश्न है, मैंने अपवित्र किया क्योंकि मुझे वही समस्या थी जब मैंने अपना पहला C प्रोग्राम लिखा था :)
rmeador

11
@itsbunnies: जैसा कि कहीं और उल्लेख किया गया है, एसओ पर पूछे जाने वाले कोई भी प्रोग्रामिंग प्रश्न बहुत सरल नहीं हैं। यदि आप इससे परेशान थे, तो अतीत में कोई और है और भविष्य में कोई और होगा।
छिपकली का बिल

@BilltheLizard: उस पहले प्रोग्राम के बारे में जो कभी उस समस्या के बारे में था? उसके अतीत में वह समस्या किसकी थी ? ;-)
फ़्लर्ट 2006

1
बस अपने आप को यह सवाल था :)
मोलदोवन

ध्यान दें कि आप हमेशा एक फ़ंक्शन को हमेशा नीचे की ओर फिर से लिख सकते हैं, जो एक संरचित प्रोग्रामिंग सिद्धांत (प्रवेश का एक बिंदु, निकास का एक बिंदु) है,
मैल्कम मैक्लीन

जवाबों:


195

वापसी विवरण का उपयोग करें!

return;

या

if (condition) return;

यदि आपकी विधि वापस आती है, तो आपको (और नहीं) किसी भी मान को निर्दिष्ट करने की आवश्यकता नहीं है void


2
इस बिंदु पर भी अधिक: यदि आपकी विधि शून्य हो जाती है, तो आपको कोई वापसी मान निर्दिष्ट नहीं करना चाहिए।
जोनाथन लेफ़लर

अहा, इसलिए जब हम वापसी लिखते हैं; कुछ भी नहीं लौटने का मतलब है कि शून्य को वापस करना एह? शून्य का मतलब कुछ भी नहीं है !! हम्म मैं इसे अभी प्राप्त करता हूं।
क्वांटम 231

@ quantum321 मुझे लगता है कि रिटर्न वैल्यू तकनीकी रूप से अपरिभाषित है, शून्य नहीं है लेकिन इसे "शून्य" के रूप में सोचना उपयोगी है।
डॉ। पर्सन II II

@ Dr.PersonPersonII द्वारा 'यदि आपकी विधि "शून्य" है, तो मेरा मतलब है कि विधि के रिटर्न प्रकार के विशुद्ध रूप से वाक्य-विन्यास के रूप में घोषित किया गया है void। तकनीकी रूप से, विधि कुछ भी वापस नहीं करती है। जो अपरिभाषित लौटने से अलग है।
मेहरदाद अफश्री

2
वास्तव में आप भी लिख सकते return void()हैं :)
हल्की रेंस ऑर्बिट

12

यानी तुम्हें ये पसंद है?

void foo ( int i ) {
    if ( i < 0 ) return; // do nothing
    // do something
}

10
void foo() {
  /* do some stuff */
  if (!condition) {
    return;
  }
}

आप किसी अन्य फ़ंक्शन में जैसे आप चाहेंगे वैसे ही आप वापसी कीवर्ड का उपयोग कर सकते हैं।


-1

मुझे पता है कि प्रश्न पहले से ही उत्तर दिया गया है और एक returnबयान का उपयोग करके काम करता है। लेकिन वैकल्पिक रूप से आप शर्त के elseब्लॉक में बाकी फ़ंक्शन को भी शामिल कर सकते ifहैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.