जावा के लिए संक्षिप्त रूप यदि कथन


201

मुझे पता है कि ifसंक्षिप्त रूप में जावा स्टेटमेंट लिखने का एक तरीका है।

if (city.getName() != null) {
    name = city.getName();
} else {
    name="N/A";
}

क्या किसी को पता है कि उपरोक्त 5 लाइनों के लिए संक्षिप्त रूप को एक पंक्ति में कैसे लिखना है?



2
मुझे लगता है कि आपको अपना ifतर्क गलत तरीके से मिला।
एनपीई

7
if (city.getName()!=null){name = city.getName();}else{name="N/A"}
स्टीव कुओ

9
@SteveKuo तीन स्थान हैं जिन्हें आप हटा सकते हैं। ;)
पीटर लॉरी

2
if (city.getName()!= null) name = city.getName(); else name="N/A";
एंटोन डोज़ोर्टसेव

जवाबों:


423

टर्नरी ऑपरेटर का उपयोग करें:

name = ((city.getName() == null) ? "N/A" : city.getName());

मुझे लगता है कि आपके पास स्थितियां पीछे की ओर हैं - यदि यह शून्य है, तो आप "एन / ए" होना चाहते हैं।

क्या होगा अगर शहर शून्य है? आपका कोड * उस स्थिति में बिस्तर से टकराता है। मैं एक और जाँच जोड़ूंगा:

name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());

12
+1, हालाँकि आपके पास निरर्थक कोष्ठक हैं। मैंने लिखा होगा: name = city.getName() == null ? "N/A" : city.getName();
एंड्रेस एफ।

20
शैली और स्वाद का मामला: मैं बूलियन क्लॉज के समूहन को स्पष्ट करना पसंद करता हूं।
duffymo

4
जो कुछ भी - मैंने डीमॉर्गन की प्रमेय का उपयोग किया और जो आपको आवश्यक था वह मिला। जब तक आप तर्क को सही ढंग से व्यक्त नहीं करते, तब तक संपादित करने की आवश्यकता नहीं है।
duffymo

2
FYI करें बाहरी कोष्ठक अनावश्यक हैं। तुम बस कर सकते हैंname = city.getName()==null ? "N/A" : city.getName()
स्टीव कू

4
नहीं String cityName = city.getName();फेंक देंगे NullPointerExceptionअगर city == null? इसलिए मैं कहूंगा कि आपका मध्य समाधान निश्चित रूप से सबसे अच्छा है (पीएस और मैं 'अनावश्यक' कोष्ठक का अनुमोदन करता हूं! लोगों को यह याद रखना होगा कि 99% कोडिंग अन्य लोगों (और आपके भविष्य के स्वयं) के साथ संवाद कर रही है, न कि संकलक - अन्यथा हम ग का उपयोग करेंगे!)
एलेक्स

32

.getName()दो बार कॉल करने से बचने के लिए मैं उपयोग करूंगा

name = city.getName();
if (name == null) name = "N/A";

2
एक परिवर्तनशील शहर के साथ एक बहु उपयोगकर्ता प्रणाली में, एक हस्तक्षेप हो सकता है city.setName(null)। आपका जवाब बड़े करीने से संभालता है।
एमोरी

27

इसे करने का तरीका टर्नरी ऑपरेटर के पास है:

name = city.getName() == null ? city.getName() : "N/A"

हालाँकि, मेरा मानना ​​है कि आपके पास ऊपर दिए गए कोड में एक टाइपो है, और आपके कहने का मतलब है:

if (city.getName() != null) ...

23

? : जावा में ऑपरेटर

जावा में आप लिख सकते हैं:

if (a > b) {
  max = a;
}
else {
  max = b;
}

एक ही स्थिति के आधार पर दो राज्यों में से एक के लिए एक एकल चर सेट करना, अगर-और का एक सामान्य उपयोग है, तो इसके लिए एक शॉर्टकट तैयार किया गया है, सशर्त ऑपरेटर ?:। सशर्त ऑपरेटर का उपयोग करके आप इस तरह से एक पंक्ति में उपरोक्त उदाहरण को फिर से लिख सकते हैं:

max = (a > b) ? a : b;

(a> b)? ए: बी; एक अभिव्यक्ति है जो दो में से एक मान लौटाता है, या बी। स्थिति, (ए> बी) का परीक्षण किया जाता है। अगर यह सच है पहला मूल्य, एक, वापस आ गया है। यदि यह गलत है, तो दूसरा मान, b, लौटा दिया जाता है। जो भी मान लौटा है वह सशर्त परीक्षण पर निर्भर है, a> b। स्थिति कोई भी अभिव्यक्ति हो सकती है जो बूलियन मान लौटाती है।



18

मैं हमेशा यह भूल रहा हूं कि ?: टर्नरी ऑपरेटर का उपयोग कैसे किया जाए । यह पूरक उत्तर एक त्वरित अनुस्मारक है। इसके लिए आशुलिपि है if-then-else

myVariable = (testCondition) ? someValue : anotherValue;

कहाँ पे

  • () धारण करता है if
  • ? माध्यम then
  • : माध्यम else

यह वैसा ही है

if (testCondition) {
    myVariable = someValue;
} else {
    myVariable = anotherValue;
}

10

आप if, else if, elseसंक्षिप्त रूप में वक्तव्य लिख सकते हैं । उदाहरण के लिए:

Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";      

यह संक्षिप्त रूप है:

Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
    isCapitalName = "";
} else if(isCapital) {
    isCapitalName = "Capital";
} else {
    isCapitalName = "City";
}

1
यह तब भी नहीं पूछा गया था -1।
मक्की

8

1. आप कोष्ठक और रेखा विराम हटा सकते हैं ।

if (city.getName() != null) name = city.getName(); else name = "N/A";

2. आप उपयोग कर सकते हैं ?: ऑपरेटरों जावा में।

वाक्य - विन्यास:

Variable = Condition ? BlockTrue : BlockElse;

तो आपके कोड में आप ऐसा कर सकते हैं:

name = city.getName() == null ? "N/A" : city.getName();

3. बूलियन के लिए स्थिति परिणाम निर्दिष्ट करें

boolean hasName = city.getName() != null;

अतिरिक्त: जिज्ञासु के लिए

JAVAजैसे कुछ भाषाओं में Groovy, आप इस वाक्यविन्यास का उपयोग कर सकते हैं:

name = city.getName() ?: "N/A";

ऑपरेटर ?:उस वेरिएबल से लौटाए गए मान को असाइन करता है जिसे हम मांग रहे हैं। इस मामले में, city.getName()अगर यह नहीं है null



3
name = ( (city.getName() == null)? "N/A" : city.getName() );

सबसे पहले हालत (city.getName() == null)की जाँच की जाती है। यदि हाँ, तो "N/A"नाम के लिए असाइन किया गया है या बस name="N/A"या तो city.getName()नाम से असाइन किया गया है, अर्थात name=city.getName()

यहाँ देखने के लिए चीजें:

  1. एक प्रश्न चिह्न के बाद कोष्ठक में स्थिति है। इसलिए मैं लिखता हूं (city.getName() == null)?। यहां हालत के बाद सवालिया निशान है। देखने / पढ़ने / अनुमान लगाने में भी आसान!
  2. बृहदान्त्र ( :) का मान बाईं ओर और बृहदान्त्र का मान दाईं ओर (a) मान बचे हुए को असाइन किया जाता है जब स्थिति सही होती है, अन्यथा बृहदान्त्र का मान सही चर को सौंपा जाता है।

यहाँ एक संदर्भ है: http://www.cafeaulait.org/course/week2/43.html


3

यहाँ एक लाइन कोड है

name = (city.getName() != null) ? city.getName() : "N/A";

यहाँ उदाहरण है कि यह कैसे काम करता है, js फ़ाइल में कोड के नीचे चलाएं और परिणाम को समझें। यह ("Data" != null)ऐसी स्थिति है जैसा हम सामान्य रूप से करते हैं if()और "Data"यह कथन तब होता है जब यह स्थिति सत्य हो जाती है। यह " : "कार्य अन्य की तरह करता है और "N/A"किसी अन्य शर्त के लिए बयान करता है। आशा है कि यह आपको तर्क समझने में मदद करेगा।

name = ("Data" != null) ? "Data" : "N/A";

console.log(name);



2

सरल और स्पष्ट:

String manType = hasMoney() ? "rich" : "poor";

दीर्घ संस्करण:

      String manType;
    if (hasMoney()) {
        manType = "rich";
    } else {
        manType = "poor";
    }

या मैं इसे कैसे उपयोग कर रहा हूं अन्य कोड पाठकों के लिए स्पष्ट हो:

 String manType = "poor";
    if (hasMoney())
        manType = "rich";

0

आप जावा में टर्नरी ऑपरेटर का उपयोग कर सकते हैं।

वाक्य - विन्यास:

Condition ? Block 1 : Block 2

तो आपके कोड में आप ऐसा कर सकते हैं,

name = ((city.getName() == null) ? "N/A" : city.getName());

अधिक जानकारी के लिए आप इस संसाधन को देख सकते हैं ।


4
यह 6 साल पुराना सवाल है और इसने स्वीकार कर लिया है। आपका जवाब कुछ भी नहीं प्रदान करता है -1
Makky

-3
name = city.getName()!=null?city.getName():"N/A"

4
केवल कुछ कोड पोस्ट करने के बजाय आप तकनीक की व्याख्या करके ओपी को अधिक मदद करेंगे। यह कैसे काम करता है, क्यों काम करता है?
ज़बुज़ार्ड

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