क्या जावा में ब्रेसिज़ के बिना IF स्टेटमेंट होना संभव है, जैसे:
if ( X == y) z = x * y; अन्य z = y - x;
यह PHP में संभव है, और मुझे यकीन नहीं है कि मैं कुछ गलत कर रहा हूं।
स्पष्टीकरण: यह मेरा वास्तविक कोड है कि मैं का उपयोग कर रहा हूँ:
यदि (स्क्वायर के अन्य उदाहरण) स्क्वायर realOther = (स्क्वायर) अन्य; अन्य आयत realOther = (आयत) अन्य;
लेकिन मुझे "त्रुटियों पर सिंटैक्स टोकन", "इस टोकन को हटा दें" और "वास्तविक अन्य हल नहीं किया जा सकता है" जैसे अन्य त्रुटियों के साथ।
मैं क्या कर रहा हूँ गलत? < / P>
हां, आप कर्ली का उपयोग किए बिना एक कथन के साथ एक अगर
कथन का अनुसरण कर सकते हैं ब्रेसिज़ (लेकिन क्या आप वास्तव में चाहते हैं?), लेकिन आपकी समस्या अधिक सूक्ष्म है बदलने की कोशिश करें:
यदि (x = y)
से:
if (x == y) < कुछ कोड (जैसे कि PHP, उदाहरण के लिए) किसी भी गैर-शून्य मान को सही और शून्य (या NULL
, null
, < कोड> शून्य कोड>, जो कुछ भी) false
के रूप में, इसलिए सशर्त कार्य में असाइनमेंट संचालन। जावा केवल सशर्त बयान के अंदर बूलीयन अभिव्यक्ति (अभिव्यक्ति जो एक बूलीयन को वापस या मूल्यांकन करती है) की अनुमति देता है आपको यह त्रुटि दिखाई दे रही है क्योंकि (x = y)
का परिणाम y
का मान है, नहीं true
या false < / Code>। आप इस सरल उदाहरण के साथ कार्रवाई में देख सकते हैं:
यदि (1) System.out.println ("यह सच है"); यदि (सत्य) System.out.println ("यह सच है");
पहला बयान संकलन को विफल कर देगा क्योंकि 1
को बूलियन में परिवर्तित नहीं किया जा सकता है।
संपादित करें: आपके अद्यतित उदाहरण पर मेरा अनुमान (जो आपको सवाल में डाल देना चाहिए था और न कि एक नया उत्तर के रूप में) यह है कि आप उन बयानों में इसे निर्दिष्ट करने के बाद असली अन्य
तक पहुंचने का प्रयास कर रहे हैं यह असली अन्य
के दायरे को अगर
/ else
स्टेटमेंट के लिए सीमित है, के रूप में कार्य नहीं करेगा। आपको या तो अपने if
कथन (जो इस मामले में बेकार होगा) के ऊपर असली अन्य
घोषित करने की आवश्यकता है, या अपने if
स्टेटमेंट):
यदि (स्क्वायर के अन्य उदाहरण) ((स्क्वायर) अन्य) .doSomething (); अन्य ((आयत) अन्य)। डोसोमिंगएल्से ();
आगे की सहायता के लिए हमें अपने वास्तविक कोड को देखने की आवश्यकता होगी।
संपादित करें: सार्वजनिक कोड परीक्षण {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {ऑब्जेक्ट ऑब्जेक्ट} = नया स्क्वायर (); यदि (अन्य घटनाओं का वर्ग) स्क्वायर realOther = (स्क्वायर) अन्य; अन्य आयत realOther = (आयत) अन्य; वापसी; }} वर्ग आयत {सार्वजनिक आयत ()}} सार्वजनिक शून्य से काम करना () {System.out.println ("कुछ"); }} वर्ग स्क्वायर {सार्वजनिक स्क्वायर () {} सार्वजनिक शून्य काम करता है () {System.out.println ("कुछ"); }}
ध्यान दें कि उस अगर
/ else
कथन में घुंघराले ब्रेसिज़ जोड़ना अनुपयोगी चर के बारे में चेतावनी में त्रुटि को कम करता है। हमारा अपना अंक बताते हैं:
कहते हैं: "प्रत्येक स्थानीय चर घोषणा घोषणा तुरंत एक ब्लॉक द्वारा निहित है।"
यदि
में उनके पास ब्रेस नहीं है, तो वे ब्लॉक में नहीं हैं।
यह भी ध्यान दें कि मेरा दूसरा उदाहरण:
((स्क्वायर) अन्य)। कुछ ()
बिना त्रुटि के संकलित।
संपादित करें: लेकिन मुझे लगता है कि हमने स्थापित किया है (जब तक यह अस्पष्ट किनारे मामलों में एक दिलचस्प डुबकी है) जो भी आप करने की कोशिश कर रहे हैं, आप इसे ठीक से नहीं कर रहे हैं तो आप वास्तव में करने की कोशिश कर रहे हैं?
Comments
Post a Comment