दिलचस्प पोस्ट
पृष्ठभूमि कार्यकर्ता को तर्क भेजना? क्यों मेरे खेतों को शून्य या डिफ़ॉल्ट मान के शून्य के लिए शुरू किया जाता है, जब मैंने उन्हें घोषित किया और उन्हें अपने वर्ग के निर्माता में आरम्भ किया? जावा "+" का उपयोग करते हुए स्ट्रिंग कन्टेनटेनेशन कैसे करते हैं? VBA एआरएम सॉर्ट फ़ंक्शन? जावा में प्राइमटालिटी के लिए सबसे तेज़ तरीका क्या होगा? हैशमैप, लिंक्डएचशैप और ट्रीमाप के बीच का अंतर Django में मॉडल के खेतों को प्राप्त करें सर्वश्रेष्ठ सी / सी + + नेटवर्क लाइब्रेरी PHP में सभी सर्वर के सत्रों के माध्यम से लूपिंग एपल PUSH अधिसूचना सेटअप करने के लिए प्रयुक्त .pem फ़ाइल उत्पन्न करें शुरुआत पायथन: एक ही फाइल को पढ़ना और लिखना कोड में स्विच को खत्म करने के तरीके स्ट्रिंग के पहले अक्षर को प्राप्त करना और निकालना JTable में समूह को JRadioButton जोड़ने के लिए कैसे कॉम ऑब्जेक्ट्स को सी # से एक्सेस करने का सर्वोत्तम तरीका

टर्नरी ऑपरेटर कैसे काम करता है?

कृपया प्रदर्शित करें कि टर्नर ऑपरेटर नियमित रूप से कैसे काम करता है यदि / दूसरे ब्लॉक उदाहरण:

Boolean isValueBig = value > 100 ? true : false; 

सटीक डुप्लिकेट: मैं टर्नरी ऑपरेटर का उपयोग कैसे करूं?

वेब के समाधान से एकत्रित समाधान "टर्नरी ऑपरेटर कैसे काम करता है?"

 Boolean isValueBig = ( value > 100 ) ? true : false; Boolean isValueBig; if( value > 100 ) { isValueBig = true; } else { isValueBig = false; } 

टर्नरी ऑपरेशन के बीच का अंतर और अगर / अन्य यह है कि टर्नरी अभिव्यक्ति एक बयान है जो मूल्य के लिए मूल्यांकन करता है, जबकि अन्य / नहीं है।

अपने उदाहरण का उपयोग करने के लिए, एक त्रिगुट अभिव्यक्ति के उपयोग से बदल रहा है यदि / else आप इस कथन का उपयोग कर सकते हैं:

 Boolean isValueBig = null; if(value > 100) { isValueBig = true } else { isValueBig = false; } 

इस मामले में, हालांकि, आपका कथन इस के बराबर है:

 Boolean isValueBig = (value > 100); 

जब मैं सी ++ के लिए नया था, तो मुझे पता चला कि यह इस प्रकार के निर्माण को पढ़ने में मदद करता है:

 Boolean isValueBig = if condition ? then x else: y; 

(ध्यान दें कि यह मान्य कोड नहीं है। यह मेरे सिर में पढ़ने के लिए मैंने खुद को प्रशिक्षित किया है।)

 Boolean isValueBig; if (value > 100) { isValueBig = true; } else { isValueBig = false; } 
 Boolean isValueBig; if(value > 100) { isValueBig = true; } else { isValueBig = false; } 

मैं टर्नेरी ऑपरेटर का कभी प्रशंसक नहीं था क्योंकि मैंने सोचा कि यह पढ़ना मुश्किल था। जैसा कि ऐसा होता है, जॉन स्कीट और उसकी किताब, सी # में गहराई ने आखिरकार इस पुराने कुत्ते को सिर पर मारा और इसे अंदर से सिंक करने के लिए मिला। जॉन ने कहा, और मैं संक्षेप में, इसे एक प्रश्न के रूप में सोचो।

मूल्य> 100?

"हाॅं नही"

अब अंधा देख सकता है

आशा है कि इससे आपको दूसरी प्रकृति बनाने में मदद मिलेगी।

के रूप में उद्धृत : ऑपरेटर एमएसडीएन पृष्ठ , "सशर्त ऑपरेटर (? 🙂 एक बूलियन अभिव्यक्ति के मूल्य के आधार पर दो मानों में से एक देता है।"

तो आप बस बूलियन से अधिक वापसी करने के लिए टर्नरी ऑपरेटर का उपयोग कर सकते हैं:

  string result = (value > 100 ) ? "value is big" : "value is small"; 

PHP उदाहरण

 <?php // Example usage for: Ternary Operator $action = (empty($_POST['action'])) ? 'default' : $_POST['action']; // The above is identical to this if/else statement if (empty($_POST['action'])) { $action = 'default'; } else { $action = $_POST['action']; } ?> 

"अभिव्यक्ति (एक्सपीआर 1)? (एक्सपीआर 2): (एक्सपीआर 3) एक्सपीआरए का मूल्यांकन करता है यदि एक्सप्रोड्यू का सही मूल्यांकन होता है, और एक्सपीआरए एक्सपीआरए द्वारा गलत मानता है ।"

तुलना ऑपरेटरों पर PHP प्रलेखन

सुनिश्चित करें कि आप जावा में सही / गलत भागों में प्रकारों को मिला नहीं करते हैं। यह अजीब परिणाम उत्पन्न करता है 🙁

खराब उदाहरण, क्योंकि आप आसानी से लिख सकते हैं

 Boolean isValueBig = value > 100 ? true : false; 

जैसा:

 bool isValueBig = value > 100 

इसके अलावा, हर किसी ने पहले ही इसका उत्तर दिया है। मैं बूल मान सेट करने के लिए टर्नर ऑपरेटर का इस्तेमाल करने की सिफारिश नहीं करता, क्योंकि आप जो मूल्यांकन कर रहे हैं वह पहले से ही बूलियन मान है।

मुझे पता है कि यह सिर्फ एक उदाहरण था, लेकिन यह इंगित करने योग्य था।

दूसरों ने इससे पहले ही इसका जवाब दिया है लेकिन यहां एक बात है जो आपको टर्नरी के उपयोग के बारे में जानना चाहिए और इसके द्वारा मेरा मतलब है कि ऐसा कभी नहीं करना चाहिए।

मान लीजिए कि आपके पास कोड का एक टुकड़ा है, जिसे किसी मूल्य के प्रत्येक संभावित भिन्नता के लिए एक अलग ऑब्जेक्ट वापस करना माना जाता है, यह सरलता की खातिर 1 और 5 के बीच एक पूर्णांक के लिए कह देता है। आपका कोड इस तरह दिखता है:

 if(i==1) { return new ObjectOne(); } else if(i==2) { return new ObjectTwo(); } else if(i==3) { return new ObjectThree(); } else if(i==4) { return new ObjectFour(); } else if(i==5) { return new ObjectFive(); } else { return new DefaultObject(); } 

यह समझना आसान है लेकिन थोड़ी भारी है चूंकि त्रिगुट केवल एक और लिखने का एक तरीका है अगर..उस कथन को पुन: लागू किया जा सकता है

 return (i==1) ? new ObjectOne() : (i==2) ? new ObjectTwo() : (i==3) ? new ObjectThree() : (i==4) ? new ObjectFour() : (i==5) ? new ObjectFive() : new DefaultObject(); 

इसे नेस्टेड टर्नरी कहा जाता है यह बुरा है, अब जब कि आप इसके बारे में जानते हैं कृपया इसका कभी उपयोग न करें। ऐसा लगता है कि ऊपर के मामले की तरह इसके उपयोग हैं लेकिन यह बहुत संभावना है कि वास्तविक जीवन परिस्थितियों में आपको इसे कहीं और उपयोग करने की आवश्यकता होगी, जहां यह पठनीयता खो देता है (मानदंडों की चर मात्रा के साथ विन्यास बदलने और ऐसे)।

बोनस सेक्टर: यदि () के अंदर विशेषता मूल्यों को कभी सेट नहीं करें, तो बस इसे देखें: if(bool=true!=false) { .. }

जैसा कि MSDN से उद्धृत किया गया है (पिछले पोस्ट में उल्लेख किया गया है)

स्ट्रिंग परिणाम = (मान> 100)? "मान बड़ा है": "मान छोटा है";

इस रूप में पढ़ा जा सकता है:

क्या मूल्य 100 से अधिक है? अगर हाँ, स्ट्रिंग परिणाम "मान बड़ा है", यदि नहीं, तो स्ट्रिंग परिणाम "मान छोटा है" है