Java में बूलियन को boolean टाइप से दर्शाया जाता है। इस टाइप की वैल्यू या तो true होती है या false।
Java तीन बूलियन ऑपरेटरों का समर्थन करता है:
! (नॉट): बूलियन को उलट देता है।&& (ऐंड): दो बूलियन लेता है और अगर दोनों true हैं तो true लौटाता है।|| (ऑर): अगर दोनों बूलियन में से कोई एक true है तो true लौटाता है।!true // => false
!false // => true
true && false // => false
true && true // => true
false || false // => false
false || true // => true
इस अभ्यास में आप एक नए RPG गेम का क्वेस्ट लॉजिक बनाएँगे, जिसे आपका कोई दोस्त बना रहा है। गेम की मुख्य पात्र Annalyn है, जो एक बहादुर लड़की है और जिसके साथ एक दिलेर और वफादार पालतू कुत्ता है। लेकिन दुर्भाग्य से एक विपत्ति आ पड़ी: जंगल में जामुन ढूँढ़ते समय उसकी सबसे अच्छी दोस्त का अपहरण कर लिया गया। Annalyn उसे ढूँढ़कर बचाने की कोशिश करेगी, और चाहे तो इस क्वेस्ट पर अपने कुत्ते को भी साथ ले जाएगी।
कुछ समय तक पगडंडी पर चलने के बाद Annalyn को वह शिविर मिल जाता है जहाँ उसकी दोस्त कैद है। पता चलता है कि दो अपहरणकर्ता हैं: एक शक्तिशाली नाइट और एक चालाक धनुर्धर।
अपहरणकर्ताओं का पता लगा लेने के बाद Annalyn सोचती है कि वह नीचे दी गई कौन-कौन सी कार्रवाइयाँ कर सकती है:
आपके सामने चार काम हैं: यह तय करने का लॉजिक बनाना कि ऊपर बताई गई कार्रवाइयाँ उपलब्ध हैं या नहीं। यह जंगल के उन तीन पात्रों की स्थिति पर निर्भर करता है, और इस पर भी कि Annalyn का पालतू कुत्ता साथ है या नहीं।
(static) AnnalynsInfiltration.canFastAttack() मेथड बनाइए, जो एक बूलियन वैल्यू लेता है जो बताती है कि नाइट जाग रहा है या नहीं।
यह मेथड तब true लौटाता है जब नाइट की स्थिति के आधार पर तेज़ हमला किया जा सकता हो।
वरना यह false लौटाता है:
boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false
(static) AnnalynsInfiltration.canSpy() मेथड बनाइए, जो तीन बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि नाइट, धनुर्धर और कैदी जाग रहे हैं या नहीं।
यह मेथड तब true लौटाता है जब तीनों पात्रों की स्थिति के आधार पर उन पर जासूसी की जा सकती हो।
वरना यह false लौटाता है:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
(static) AnnalynsInfiltration.canSignalPrisoner() मेथड बनाइए, जो दो बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि धनुर्धर और कैदी जाग रहे हैं या नहीं।
यह मेथड तब true लौटाता है जब दोनों पात्रों की स्थिति के आधार पर कैदी को संकेत दिया जा सकता हो।
वरना यह false लौटाता है:
boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
(static) AnnalynsInfiltration.canFreePrisoner() मेथड बनाइए, जो चार बूलियन वैल्यू लेता है।
पहले तीन पैरामीटर क्रमशः बताते हैं कि नाइट, धनुर्धर और कैदी जाग रहे हैं या नहीं।
अंतिम पैरामीटर बताता है कि Annalyn का पालतू कुत्ता साथ है या नहीं।
यह मेथड तब true लौटाता है जब तीनों पात्रों की स्थिति और Annalyn के पालतू कुत्ते की मौजूदगी के आधार पर कैदी को आज़ाद किया जा सकता हो।
वरना यह false लौटाता है:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Exercism पर साइन अप कीजिए और Java को 26 कॉन्सेप्ट158 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।