सी++ में अगर स्टेटमेंट

स्टीफन आर डेविस द्वारा

मिलने परअगर, C++ पहले कोष्ठक में निहित तार्किक व्यंजक को निष्पादित करता है। निम्नलिखित कोड में, प्रोग्राम सशर्त अभिव्यक्ति का मूल्यांकन करता हैसे अधिकनहीं.



if (m > n) // if m is greater than n... { // ...then do this stuff }

यदि व्यंजक हैसच, यानी, अगरवास्तव में greater से बड़ा हैनहीं, फिर नियंत्रण { के बाद पहले कथन पर जाता है और वहां से जारी रहता है। यदि तार्किक व्यंजक सत्य नहीं है, तो नियंत्रण } के बाद पहले कथन पर जाता है।



C++ में तुलना ऑपरेटर्स

तालिका विभिन्न ऑपरेटरों को दिखाती है जिनका उपयोग तार्किक अभिव्यक्तियों में मूल्यों की तुलना करने के लिए किया जा सकता है।

बाइनरी ऑपरेटरों का प्रारूप हैexpr1 ऑपरेटर expr2.



तुलना ऑपरेटर्स
ऑपरेटर जिसका अर्थ है
== समानता; सच है अगर . के बाईं ओर अभिव्यक्ति
'==' का वही मान है जो . पर व्यंजक है
सही
! = असमानता; समानता के विपरीत
> से अधिक; सच है अगर बाएं हाथ की अभिव्यक्ति . से बड़ी है
दायीं ओर वाला
< से कम; सच है अगर बाएं हाथ की अभिव्यक्ति से कम है
एक दायीं ओर
> = इससे बड़ा या इसके बराबर; सच है अगर बाएं हाथ की अभिव्यक्ति है
दाईं ओर वाले से बड़ा या उसके बराबर
<= से कम या बराबर; सच है अगर बाएं हाथ की अभिव्यक्ति कम है
दाईं ओर वाले से या उसके बराबर

असाइनमेंट ऑपरेटर (=) के साथ समानता ऑपरेटर (==) को भ्रमित न करें। शुरुआती लोगों के लिए यह एक सामान्य गलती है।

Chantix के दुष्प्रभाव

निम्नलिखितशाखा डेमोकार्यक्रम दिखाता है कि ऑपरेटरों का उपयोग कैसे किया जाता है:

प्रेडनिसोन 40 मिलीग्राम दुष्प्रभाव
// BranchDemo - demonstrate the if statement #include #include #include using namespace std; int main(int nNumberofArgs, char* pszArgs[]) { // enter operand1 and operand2 int nOperand1; int nOperand2; cout <> nOperand1; cout <> nOperand2; // now print the results if (nOperand1 > nOperand2) { cout << 'Argument 1 is greater than argument 2' << endl; } if (nOperand1 < nOperand2) { cout << 'Argument 1 is less than argument 2' << endl; } if (nOperand1 == nOperand2) { cout << 'Argument 1 is equal to argument 2' << endl; } // wait until user is ready before terminating program // to allow the user to see the program results cout << 'Press Enter to continue...' << endl; cin.ignore(10, 'n'); cin.get(); return 0; }

कार्यक्रम का निष्पादन शुरू होता हैमुख्य()हमेशा की तरह। कार्यक्रम पहले दो घोषित करता हैपूर्णांकचर चतुराई से नामितnसंचालन1तथाnसंचालन2. यह तब उपयोगकर्ता को संकेत देता हैतर्क दर्ज करें 1, जिसमें यह पढ़ता हैnसंचालन1. प्रक्रिया को दोहराया जाता हैnसंचालन2.



कार्यक्रम तब तीन तुलनाओं के अनुक्रम को निष्पादित करता है। यह पहले जांचता है कि क्याnसंचालन1से कम हैnसंचालन2. यदि ऐसा है, तो प्रोग्राम अधिसूचना को आउटपुट करता हैतर्क 1 तर्क 2 से छोटा है. दूसराअगरकथन एक संदेश प्रदर्शित करता है यदि दो ऑपरेंड मूल्य में बराबर हैं। अंतिम तुलना सत्य है यदिnसंचालन1से अधिक हैnसंचालन2.

निम्नलिखित का एक नमूना रन दिखाता है:शाखा डेमोकार्यक्रम:

Enter argument 1:  5  Enter argument 2:  10  Argument 1 is less than argument 2 Press Enter to continue . . .

यह आंकड़ा इस विशेष रन के लिए ग्राफिकल रूप से नियंत्रण के प्रवाह को दिखाता है।

छवि0.jpg

जिस तरह सेशाखा डेमोकार्यक्रम लिखा जाता है, तीनों तुलना हर बार की जाती है। यह थोड़ा बेकार है क्योंकि तीन शर्तें परस्पर अनन्य हैं। उदाहरण के लिए,nOperand1> nOperand2संभवतः सच नहीं हो सकता अगरnसंचालन1पहले से ही सच पाया गया है।

फिनाइलफ्राइन एचसीएल 10 मिलीग्राम

नो टू नो ब्रेसिज़ कहो

वास्तव में ब्रेसिज़ वैकल्पिक हैं। ब्रेसिज़ के बिना, के बाद केवल पहली अभिव्यक्तिअगरबयान सशर्त है। हालाँकि, इस तरह से गलती करना बहुत आसान है, जैसा कि निम्नलिखित स्निपेट में दिखाया गया है:

// Can't have a negative age. If age is less than zero... if (nAge <0) cout << 'Age can't be negative; using 0' << endl; nAge = 0; // program continues

आप सोच सकते हैं कि अगरउम्र:0 से कम है, यह प्रोग्राम स्निपेट एक संदेश आउटपुट करता है और रीसेट करता हैउम्र:शून्य करने के लिए। वास्तव में, कार्यक्रम सेटउम्र:शून्य करने के लिए वैसे भी, चाहे उसका मूल मूल्य कोई भी हो। पिछला स्निपेट निम्न के बराबर है:

// Can't have a negative age. If age is less than zero... if (nAge <0) { cout << 'Age can't be negative; using 0' << endl; } nAge = 0; // program continues

टिप्पणियों और इंडेंट से यह स्पष्ट है कि प्रोग्रामर का वास्तव में निम्नलिखित अर्थ था:

// Can't have a negative age. If age is less than zero... if (nAge <0) { cout << 'Age can't be negative; using 0' << endl; nAge = 0; } // program continues

C++ कंपाइलर इस प्रकार की गलती को नहीं पकड़ सकता। यदि आप हमेशा ब्रेसिज़ की आपूर्ति करते हैं तो यह अधिक सुरक्षित है।

सी ++ सभी सफेद जगहों को समान मानता है। यह पृष्ठ पर भावों के संरेखण को अनदेखा करता है।

यदि कथन के बाद कथनों को संलग्न करने के लिए हमेशा ब्रेसिज़ का उपयोग करें, भले ही केवल एक ही हो। आप इस तरह बहुत कम त्रुटियां उत्पन्न करेंगे।