2012-01-18 11 views
6

क्या निम्नलिखित निर्माण के लिए सही शब्द/नाम है:इस कोड निर्माण का नाम क्या है: हालत? true_expression: false_expression

string myString = (boolValue==true ? "true": "false"); 
+4

जब विकिपीडिया वापस आ जाता है तो आप http://en.wikipedia.org/wiki/%3F का संदर्भ ले सकते हैं: जो इस ऑपरेटर को समर्पित एक पृष्ठ है। –

उत्तर

15

यह एक कठिन सशर्त अभिव्यक्ति है।

5

यह त्रिगुट सशर्त ऑपरेटर कहा जाता है। मुझे नहीं पता कि इसका उपयोग करने वाले अभिव्यक्तियों का एक विशिष्ट नाम है, हालांकि।

आशा है कि इससे मदद मिलती है!

+1

उनके पास सभी मानकों के अनुसार एक विशिष्ट नाम है, और ऑपरेटर का एक विशिष्ट नाम भी है - * सशर्त ऑपरेटर *। –

+0

@ डेविड हेफरन: एक sidenote पर: सी ++ और सी समुदाय में, _ ternary ऑपरेटर_ एक आम वर्तनी है, क्योंकि केवल एक टर्नरी ऑपरेटर है। –

+0

@ डेविड हेफरन: ओह, मैंने गलती से आपके जवाब को अनदेखा कर दिया, क्षमा करें। मैंने एक और जोड़ा है क्योंकि मैं कल्पना कर सकता हूं कि कुछ प्रोग्रामर यूनरी, बाइनरी और टर्नरी (या एन-आरी) के संबंधों को नहीं जानते हैं। –

1

मुझे लगता है कि इसे "टर्नरी ऑपरेटर" कहा जाता है।

1

यह एक सशर्त अभिव्यक्ति है, लेकिन जब आप "?" का उपयोग करते हैं "सशर्त ऑपरेटर" कहा जाता है।

+0

यह एक बयान नहीं है, लेकिन एक अभिव्यक्ति है! –

+0

@ बेसिलस्टारनकेविच - अपडेटेड! – 5StringRyan

+0

@ बेसिलस्टारनकेविच यह एक बयान है, हालांकि एक अभिव्यक्ति शामिल है। –

1

यह सशर्त अभिव्यक्ति है। निम्नलिखित

string myString = (somecond)?"true":"false"; 

आपके मामले में, बस boolValue

सी, सी ++, C# और जावा के साथ
string MyString = boolValue?"true":"false". 
+0

पठनीयता के लिए, जब तक कि यह बहुत छोटा नहीं है (और बहुत कुछ है), स्थिति और दो नियंत्रित अभिव्यक्तियों को अलग-अलग लाइनों पर रखें, जैसा कि आप 'if' के लिए करेंगे। –

10

मानकों सभी का उपयोग का परीक्षण:

पठनीयता के लिए, कोष्ठक में जटिल स्थिति में डाल दिया शर्तें:

  • ऑपरेटर सशर्त ऑपरेटर है
  • ऐसी अभिव्यक्ति सशर्त अभिव्यक्ति है।

तो वे आधिकारिक नाम हैं। प्रोग्रामर्स अक्सर अधिक शिथिल त्रिगुट ऑपरेटर ही कहते हैं, क्योंकि यह केवल 3 ऑपरेंड के साथ ऑपरेटर आमतौर पर इस्तेमाल किया है। कड़ाई से बोलना केवल टर्नरी ऑपरेटर है।

6

?: ऑपरेटर "सशर्त ऑपरेटर" है।

boolValue==true ? "true": "false" इसलिए एक सशर्त अभिव्यक्ति है।

myString = (boolValue==true ? "true": "false") एक सशर्त अभिव्यक्ति है जिसमें एक असाइनमेंट भी है।

string myString = (boolValue==true ? "true": "false"); एक बयान है जो घोषणा और असाइनमेंट में एक सशर्त अभिव्यक्ति का उपयोग करता है।

?: को अक्सर "टर्नरी ऑपरेटर" के रूप में जाना जाता है। कड़ाई से यह केवल टर्नरी ऑपरेटर है, लेकिन चूंकि यह उन भाषाओं में से एकमात्र है, इसलिए टर्नरी ऑपरेटर मान्य है हालांकि यह अपनी आंतरिक परिभाषा से अलग तथ्य पर आधारित एक लेबल लागू कर रहा है।जहां हम x § y ¶ z जैसी भाषा में ऑपरेटर जोड़ना चाहते हैं, जिसमें , y और z ऑपरेटरों के रूप में तीनों को ले लिया गया है, तो यह एक टर्नरी ऑपरेटर भी होगा और सशर्त ऑपरेटर अभी भी टर्नरी ऑपरेटर होगा, यह अब नहीं होगा टर्नरी ऑपरेटर।

2

मुझे यकीन नहीं है कि यह सी # समुदाय में आम समानता है, लेकिन सी और सी ++ में कई लोग आमतौर पर इस टर्नरी ऑपरेटर पर कॉल करते हैं। क्यूं कर?

  • यूनरी ऑपरेटर हैं जो -x में एक एकल ऑपरेंड की अपेक्षा करते हैं।
  • बाइनरी ऑपरेटर हैं जो दो ऑपरेटरों की अपेक्षा करते हैं, जैसे x+x
  • केवल एक टर्नरी ऑपरेटर है, जो तीन ऑपरेटरों की अपेक्षा करता है, जैसे x?y:z में।

"सही" नाम "सशर्त ऑपरेटर" है, क्योंकि परिणाम स्थिति (बाएं सबसे अधिक ऑपरेंड) पर निर्भर करता है।

0

इसे "टर्नरी" कहा जाता है और जहां तक ​​मुझे याद है, जब मैंने जावा (11/12 साल पहले) सीखा, तो आप यह नहीं कर सके या कम से कम, शिक्षक इसे पर पढ़ा नहीं रहे थे क्योंकि कभी-कभी कोड कम पठनीय होता है ...

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