"अभिवादन, अमिगो! तर्काच्या समस्या सोडवताना मी इतका वाहून गेलो की तुम्ही आत आल्याचे माझ्या लक्षात आले नाही. तुमच्यासाठी एक आहे: मगरी उडतात तर बर्फ पांढरा असतो. एक उडणारी मगर आहे. निष्कर्ष काय आहे?"

"अं... तर आम्ही निष्कर्ष काढतो की बर्फ पांढरा आहे?"

"उत्कृष्ट! तुम्ही दीक्षा परीक्षेत उत्तीर्ण झालात. तुम्ही पुढच्या विषयावर प्रभुत्व मिळवण्यासाठी तयार आहात. त्याला 'लॉजिकल ऑपरेटर' म्हणतात. आणि आम्ही बुलियन लॉजिकने सुरुवात करू. सहजतेने, तुम्हाला ते आधीच माहित आहे. तुम्ही एक रोबोट आहात, शेवटी आम्हाला फक्त जावा भाषेशी जुळण्यासाठी तुमची सेटिंग्ज बदलण्याची गरज आहे."

"बुलियन लॉजिक? मला नुकतेच बुलियन प्रकाराबद्दल सांगण्यात आले होते..."

"होय, येथे थेट संबंध आहे. बूलियन अभिव्यक्ती फक्त सत्य किंवा असत्य असू शकतात. आणि जसे घडते, अशा प्रकारचे तर्कशास्त्र हे खरे किंवा खोटे असलेल्या अभिव्यक्ती आणि अशा अभिव्यक्तींच्या संयोजनांबद्दल आहे. उदाहरणार्थ, अभिव्यक्ती 18 < 25 नेहमी सत्य असते आणि 7 < 5 नेहमी खोटे असते. अभिव्यक्ती (i < 10) i च्या मूल्यावर अवलंबून असते. आणि जर अभिव्यक्तीचे मूल्यमापन केले जाते, उदाहरणार्थ, सत्य, तर आपण प्रोग्रामला काहीतरी करण्यास सांगू शकतो."

"अहो, मला समजले. बूलियन अभिव्यक्ती आपल्याला केवळ तार्किक निष्कर्ष काढण्याची परवानगी देत ​​​​नाही तर प्रोग्राम्समध्ये काटे तयार करण्यास देखील परवानगी देतात."

"नक्की. मुख्य गोष्ट म्हणजे ते कसे लिहायचे ते शिकणे. उदाहरणार्थ, जावामध्ये तुम्ही फक्त अभिव्यक्ती लिहू शकत नाही 18 < age <65. हे वाक्यरचनात्मकदृष्ट्या चुकीचे असेल आणि प्रोग्राम संकलित होणार नाही.

"परंतु तुम्ही ते असे लिहू शकता:

(18 < age) AND (age < 65)

अर्थात, आम्ही प्रत्यक्षात इंग्रजी शब्द वापरत नाही AND. त्याऐवजी, तुम्हाला बुलियन ऑपरेटरची आवश्यकता आहे . म्हणजेच, 'AND' वेगळ्या प्रकारे दर्शविला जातो.

"जावामध्ये तीन लॉजिकल ऑपरेटर आहेत: AND(&&), OR(||), NOT(!).

चांगली बातमी अशी आहे की तुम्ही कोणत्याही जटिलतेच्या तार्किक अभिव्यक्ती तयार करण्यासाठी कंस वापरू शकता.

वाईट बातमी अशी आहे की जावा डेव्हलपर्सनी शब्दांऐवजी C भाषेतून नोटेशन वापरण्याचा निर्णय घेतला andआणि or.not

स्क्रीनकडे पहा:

लॉजिकल ऑपरेटर अपेक्षा वास्तव
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

"ते खरं तर तितकं वाईट नाहीये... खूपच कॉम्पॅक्ट आहे. मी ते जवळजवळ लक्षात ठेवलं आहे."

"ठीक आहे, हे आश्चर्यकारक आहे. जावामध्ये लॉजिकल ऑपरेटर वापरण्याची काही उदाहरणे येथे आहेत:

अभिव्यक्ती व्याख्या स्पष्टीकरण
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) AND (a < 100)
(!a) && (!b) (not a) and (not b) (NOT a) AND (NOT b)
!(!a || !b) not((not a) or (not b)) NOT((NOT a) OR (NOT b))

तुलना ऑपरेटर आणि बुलियन व्हेरिएबल्स वापरण्याची उदाहरणे

"लक्षात ठेवा, अमिगो, जिथे तुम्ही तार्किक अभिव्यक्ती लिहू शकता, तिथे तुम्ही तार्किक चल लिहू शकता."

"असं कसं?"

"म्हणजे तुम्ही तार्किक अभिव्यक्ती वेगवेगळ्या प्रकारे लिहू शकता. उदाहरणार्थ:

कोड स्पष्टीकरण
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
वयाचे मूल्य 18आणि दरम्यान असल्यास 65, "तुम्ही कार्य करू शकता" हा वाक्यांश प्रदर्शित केला जाईल.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
आम्ही isYoungव्हेरिएबल तयार केले आणि त्यात अभिव्यक्तीचा पहिला भाग हलवला. आम्ही फक्त age >= 18सह बदलले age < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
आम्ही isOld व्हेरिएबल तयार केले आणि अभिव्यक्तीचा दुसरा भाग त्यात हलवला. याव्यतिरिक्त, age <= 65द्वारे बदलले गेले age > 65.

"ही तीन उदाहरणे समतुल्य आहेत. फक्त दुसऱ्या उदाहरणात आम्ही अभिव्यक्तीचा काही भाग स्टेटमेंटमधून ifवेगळ्या बुलियन व्हेरिएबल ( isYoung) मध्ये हलवला. तिसऱ्या उदाहरणात, आम्ही अभिव्यक्तीचा दुसरा भाग दुसऱ्या व्हेरिएबलमध्ये हलवला ( isOld). तसे, बुलियन व्हेरिएबलचे डीफॉल्ट मूल्य आहे false."

"मला ते आठवेल. मला आशा आहे."

तार्किक अंकगणित

"आता थोडक्यात तार्किक ऑपरेशन्स पाहू. ते अतिशय साधे आणि तार्किक (अन्यथा कसे असू शकते!) नियमांचे पालन करतात.

"प्रथम, ऑपरेटर कसे कार्य करते ते पाहू या OR. याला डिसजंक्शन|| असेही म्हणतात .

अभिव्यक्ती परिणाम
true || true true
true || false true
false || true true
false || false false

a || b" टेबलवर आधारित अभिव्यक्तीचा परिणाम काय आहे ते तुम्ही आता काढू शकता ?"

"मी बघतो!" trueअभिव्यक्तीमध्ये किमान एक पद असल्यास अभिव्यक्तीचे मूल्य आहे true. जर दोन्ही आहेत false, तर परिणाम आहे false.

"हे बरोबर आहे. तुम्ही खूप हुशार असल्याने, टेबलवर आणखी एक नजर टाका आणि कल्पना करा की ते false0 आहे आणि true1 आहे. जेव्हा तुम्ही त्याकडे पाहता तेव्हा ||ऑपरेटरचे वागणे तुम्हाला सामान्य अंकगणितातील कोणत्याही गोष्टीची आठवण करून देते का?"

"अं... बरं, हे जरा जोडण्यासारखं आहे... पण तुम्ही जेव्हा बेरीज करता तेव्हा 1 + 1 बरोबर 1 होत नाही."

||"आम्ही फक्त 0 आणि 1 सह कार्य करत असलो तर ते समान आहे असा एक अर्थ आहे. परंतु आत्ता त्याबद्दल काळजी करू नका. महत्त्वाची गोष्ट अशी आहे की ऑपरेशन आणि जोडण्यामधील समानता तुमच्या लक्षात आली आहे. याचा अर्थ असा आहे की तुम्ही जिंकाल' या ऑपरेशनला बर्‍याचदा 'लॉजिकल अॅडिशन' म्हटले जाते याबद्दल आश्चर्यचकित होऊ नका.

"समजले."

"आता AND, उर्फ &&, उर्फ ​​संयोग ऑपरेटर, मंचावर येतो.

अभिव्यक्ती परिणाम
true && true true
true && false false
false && true false
false && false false

"मला समजल्याप्रमाणे, अभिव्यक्तीचा परिणाम trueअभिव्यक्ती बनवणारी दोन्ही मूल्ये असतील तरच true. अन्यथा, ते नेहमीच असते false."

"शाब्बास, अमिगो! तू हे सर्व स्पंजसारखे शोषून घेत आहेस. तुला अंकगणिताशी आणखी एक समानता दिसते का?"

"गुणाकार!"

"नक्की. तर इथे आपल्याकडे 'तार्किक गुणाकार' आहे".

"पुढे आपण ऑपरेटरकडे पाहतो NOT, उर्फ !, उर्फ ​​लॉजिकल व्युत्क्रम .

अभिव्यक्ती परिणाम
!true false
!false true

"ठीक आहे, येथे सर्वकाही अगदी सोपे आहे. ऑपरेटर बदलतो trueआणि falseउलट."

"नक्की. तुमच्यासाठी येथे काही उपयुक्त अभिव्यक्ती आहेत:"

अभिव्यक्ती परिणाम
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b