सशर्त बयान के सामान्य रूप है में स्थिति गठबंधन करने के लिए And
और Or
ऑपरेटरों का उपयोग करना चाहिए:
IF "तार्किक अभिव्यक्ति" तो। .. ईएलएसई ...
"तार्किक अभिव्यक्ति" कोई बूलियन अभिव्यक्ति है। एक बुलियन अभिव्यक्ति एक अभिव्यक्ति का मूल्यांकन सत्य या गलत के रूप में किया जा सकता है।
बूलियन अभिव्यक्ति तुलना ऑपरेटरों और बूलियन ऑपरेटरों का प्रयोग कर बनाया जा सकता है।
तुलना ऑपरेटरों:
= equals
<> not equals
> greater than
>= greater than or equals
< less than
<= less than or equals
सेट तुलना ऑपरेटरों:
= equals
<= returns true, if set1 is a subset of set2
>= returns true, if set1 is a superset of set2
in returns true, if an element is in the set
बूलियन ऑपरेटरों:
AND logical and
OR logical or
NOT logical not
XOR logical exclusive disjucntion
उदाहरण:
IF A = 10 THEN ...
IF A >= B THEN ...
IF C or D THEN ... (Note: C and D have to be logical, i.e. TRUE or FALSE)
IF NOT E THEN ... (Note: E has to be logical, i.e. TRUE or FALSE)
सी, डी और ई किसी भी तार्किक व्यंजक के साथ बदलें, उदाहरण के लिए हो सकता है:
तार्किक व्यंजक बूलियन ऑपरेटरों का उपयोग कर, उदाहरण के लिए द्वारा सरल तार्किक अभिव्यक्ति से निर्माण किया जा सकता
IF (edit1.text = '') OR (ISEMPTY(edit2.text)) THEN ...
IF NOT checkbox1.checked THEN ...
ध्यान दें कि:
IF (A = 10) AND (A >= B) THEN ...
IF NOT ((A = 10) AND (A >= B)) THEN ...
तार्किक अभिव्यक्ति लिखने में सामान्य गलती ऑपरेटर प्राथमिकता का ध्यान नहीं दे रही है (जिसे ऑपरेटर पहले मूल्यांकन किया गया था)।
A = 10
के बजाय,
IF A = 10 OR A >= B THEN ...
ऊपर गलत है क्योंकि डेल्फी
10 OR A
पहले मूल्यांकन करने के लिए कोशिश करता है: बूलियन ऑपरेटरों तुलना ऑपरेटरों की तुलना में अधिक पूर्वता, उदाहरण के लिए की है। यदि स्वयं एक तार्किक अभिव्यक्ति नहीं है, तो त्रुटि होती है।
समाधान कोष्ठकों के उपयोग से है, इसलिए यदि ऊपर ... फिर ... के रूप में लिखा जाना चाहिए:
IF (A = 10) OR (A >= B) THEN ...
जाँच 3 संपादन नियंत्रण के लिए, सशर्त बयान हो जाता है:
IF (Edit1.text <> '') AND (Edit2.text <> '') AND (Edit3.text <> '') THEN ...
नोट: थोड़ा विषय है, लेकिन संबंधित बंद। नि: शुल्क घटकों TJvValidators, TJvValidationSummary और TJvErrorIndicator Jedi JVCL project से एक अच्छा मान्यता तंत्र प्रदान करते हैं।
प्रत्येक प्रोग्रामिंग भाषा जो मुझे पता है, और 200 से अधिक है, इसमें बूलियन तर्क का कुछ रूप है, जिसमें संचालन और, या, और नहीं शामिल है। यदि आपने अभी तक उनको नहीं देखा है, तो आपको वास्तव में एक पुस्तक पढ़ने की जरूरत है। वास्तव में यदि आपने इसे सी # में किया है तो क्यों न केवल डेल्फी में कोशिश करें? केवल अंतर यह है कि डेल्फी कोष्ठक में हमेशा एक आईएफ स्टेटमेंट के साथ आवश्यक नहीं होता है। लेकिन जब कई समानता तुलना करते हैं, तो आपको उदाहरण के लिए 'if (a = b) या (c = d) 'लिखना चाहिए। –
अतिरिक्त। आपको यह भी विचार करने की आवश्यकता है कि कुछ शर्तों को ब्रांड्स में समूह होने की आवश्यकता है जैसे ((ए = एक्स 1) और (बी = वाई 1)) या ((ए = एक्स 2) और (ए = वाई 2)) तो कुछ करें। – XBasic3000