एक if
बयान फार्म की है:
if (condition) statement
आप वर्तमान में दो कोष्ठकों के भीतर की स्थिति मिल गया है ... जो भी अंत मान असाइन करना, जो शायद आप नहीं चाहते हैं।
if ((First_Relation = true) & (Second_Relation = true))
तो समानता जांच के असाइनमेंट परिवर्तित, के रूप में अन्यथा यह बस दोनों चर के true
प्रदान करेंगे और स्थिति उनके पिछले मान की परवाह किए बिना पारित करेंगे:
तो सबसे पहले ठीक यह संकलित करने के लिए प्राप्त करने के लिए
if ((First_Relation == true) & (Second_Relation == true))
फिर बूलियन स्थिरांक के साथ तुलना निकालें:
if ((First_Relation) & (Second_Relation))
तब हटाने अनावश्यक कोष्ठक:
if (First_Relation & Second_Relation)
तब चर जावा नामकरण रिवाजों का पालन करते हैं:
if (firstRelation & secondRelation)
तब के और अधिक परंपरागत &&
बजाय &
का उपयोग करें - &&
शॉर्ट सर्किट है, और लगभग हमेशा है आप क्या चाहते हैं:
if (firstRelation && secondRelation)
अब भी आपको अर्ध-कॉलन डायर मिला है आपकी if
स्थिति के बाद ectly, जो इसे व्यर्थ बनाता है - यह हमेशाSystem.out.println
कथन निष्पादित करेगा, क्योंकि यह if
कथन का हिस्सा नहीं है। आप सिर्फ सेमी-कोलन को दूर कर सकता है, लेकिन मैं स्पष्टता के लिए ब्रेसिज़ जोड़ेंगे:
if (firstRelation && secondRelation) {
System.out.println("insert text here");
}
इसके बाद, ध्यान दें कि आप वास्तव में अपने चर आरंभ कर रहे हैं तो हालत सच है - तो आप वर्तमान में हूँ चर को पढ़ने की कोशिश करने के लिए एक संकलन-समय त्रुटि प्राप्त करें जो निश्चित रूप से असाइन नहीं की गई हैं।
सबसे पहले, निश्चित काम को ठीक:
// Names changed to follow conventions
boolean firstRelation = p > q;
boolean secondRelation = r < s;
... और इसके बाद के संस्करण कोड ठीक होना चाहिए।
अगला, यह बताएं कि आप वास्तव में उन अतिरिक्त चर से बहुत कम प्राप्त कर रहे हैं।बजाय स्थिति इनलाइन:
if (p > q && r < s) {
System.out.println("Given the values for p,q,r, and s the expression "
+ "(p > q) && !(r < s) evaluates to ";
}
इस बिंदु पर, यह बहुत स्पष्ट हो जाता है वहाँ एक और बग है कि - क्योंकि आपके संदेश के बारे में बात करती है !(r < s)
लेकिन हालत अभी r < s
है। तो आपको यह तय करने की ज़रूरत है कि आप क्या हासिल करना चाहते हैं, और कोड और संदेश एक ही चीज़ को प्रतिबिंबित करते हैं। ध्यान दें कि आप संदेश को पूरा नहीं करते हैं, या तो। दरअसल, आप पूरी चीज को सरल बना सकते हैं:
System.out.println("Given the values for p,q,r, and s the expression "
+ "(p > q) && !(r < s) evaluates to " + ((p > q) && !(r < s));
... या जो भी आप वास्तव में अभिव्यक्ति चाहते हैं।
'First_Relation = TRUE' होना चाहिए' First_Relation == में ' – Ashok
if' क्यों लोगों को सवाल मतदान कर रहे हैं TRUE'? यह मुद्दा स्पष्ट रूप से बताता है क्योंकि पूछताछ करने में सक्षम है, और प्रयास का प्रदर्शन करता है। उन्नत प्रश्नों या लक्ष्य उन्नत कोडर के बारे में हर सवाल नहीं होना चाहिए। – shovavnik
आपका मतलब है, तीसरा अगर कथन? – Raedwald