2010-08-25 14 views
13

में वापसी क्यों हम सी में टर्नरी ऑपरेटरों के अंदर रिटर्न कीवर्ड का उपयोग नहीं कर सकते, इस तरह: sum> 0? वापसी 1: वापसी 0;टर्नरी ऑपरेटरों और सी

+17

'वापसी राशि> 0 के साथ क्या गलत है? 1: 0; '? –

+2

या, उस मामले के लिए, 'अगर (योग> 0) 1 लौटाएं; अन्य 0 लौटें; ' –

+1

सभी प्रतिक्रियाओं के लिए धन्यवाद। वापसी राशि> 0 के साथ कुछ भी गलत नहीं है? 1: 0; मैं सिर्फ यह जानना चाहता हूं कि हम सवाल में ऊपर उल्लिखित तरीके से इसका उपयोग क्यों नहीं कर सकते। – nullpointerexception

उत्तर

26

return एक बयान है। इस तरह अभिव्यक्तियों के भीतर वक्तव्य का उपयोग नहीं किया जा सकता है।

25

क्योंकि एक टर्नरी ऑपरेशन एक अभिव्यक्ति है और आप अभिव्यक्तियों में बयान का उपयोग नहीं कर सकते हैं।

हालांकि आप आसानी से एक टर्नरी ऑपरेटर का उपयोग कर सकते हैं।

return sum > 0 ? 1 : 0; 

या DrDipShit के रूप में ने कहा:

return sum > 0; 
+8

बस: वापसी राशि> 0; जो वैसे भी 1 या 0 लौटने के रूप में काम करता है। –

+0

@DrDipShit: बहुत सच है, इस मामले में जो भी काम करता है :) – Wolph

9

क्योंकि return एक बयान, नहीं एक अभिव्यक्ति है। आप int a = return 1; या तो नहीं कर सकते हैं।

2

देखें एक त्रिगुट ऑपरेटर की वाक्य रचना

expr1 ? expr2: expr3; 

वह जगह है जहाँ expr1, expr2, expr3 अभिव्यक्ति कर रहे हैं;

ऑपरेटर ?: के रूप में इस प्रकार है expr1 पहले मूल्यांकन किया जाता है अगर यह सच है expr2 मूल्यांकन किया जाता है अन्यथा expr3 मूल्यांकन किया जाता है काम करता है।

इसलिए अभिव्यक्तियों में वापसी कथन का उपयोग सी-भाषा में नहीं किया जा सकता है।

+1

-1, वास्तव में प्रश्न का उत्तर नहीं देता है। एसओ भी आपकी वेबसाइट पर यातायात को चलाने के लिए डिज़ाइन नहीं किया गया है – Hasturkun

0

बस सिंटैक्स को देखकर आपको पता होना चाहिए कि अभिव्यक्ति में एक कथन का उपयोग नहीं किया जा सकता है। जो आप चाहते हैं उसे प्राप्त करके प्राप्त किया जा सकता है: return sum > 0 ? 1 : 0;

संबंधित मुद्दे