टर्नरी कंडीशनल, सरल if/else स्टेटमेंट लिखने का एक छोटा तरीका है।
किसी if/else स्टेटमेंट में अगर सिर्फ दो शाखाएँ हों, तो उसे टर्नरी कंडीशनल की तरह फिर से लिखा जा सकता है। एक शाखा तब चलती है जब शर्त सही हो, और दूसरी तब जब वह गलत हो।
टर्नरी में शर्त को दो हिस्सों में बाँटने के लिए ? और : चिह्नों का इस्तेमाल किया जाता है:
condition ? true_branch : false_branch
? के बाईं ओर का कोड शर्त होता है, और दाईं ओर के कोड में वे दोनों संभावित शाखाएँ होती हैं, जिन्हें : अलग करता है।
अगर शर्त सही हो, तो : के बाईं ओर का कोड चलाया जाता है।
अगर शर्त गलत हो, तो : के दाईं ओर का कोड चलाया जाता है।
उदाहरण के लिए:
if traffic_light == 'green'
cross_the_road
else
wait
end
इसे इस तरह फिर से लिखा जा सकता है:
traffic_light == 'green' ? cross_the_road : wait
इस अभ्यास में आप एक फिल्म थिएटर की वेबसाइट के लिए नियम बनाएँगे।
थिएटर "वृद्धावस्था पेंशन" वालों के लिए छूट देता है। 60 या उससे अधिक उम्र का हर व्यक्ति टिकट के लिए 10.00 देता है। कम उम्र का हर व्यक्ति पूरा 15.00 देता है।
Moviegoer#ticket_price मेथड को टर्नरी स्टेटमेंट का इस्तेमाल करके लिखिए।
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
सिनेमा में उम्र जाँच की एक सरल व्यवस्था है। अगर आपकी उम्र 18 या उससे अधिक है, तो आप डरावनी फिल्में देख सकते हैं। अगर आप कम उम्र के हैं, तो नहीं देख सकते।
Moviegoer#watch_scary_movie? मेथड को लागू कीजिए।
इसे यह लौटाना चाहिए कि किसी को फिल्म देखने की अनुमति है या नहीं।
Moviegoer.new(21).watch_scary_movie?
#=> true
Moviegoer.new(17).watch_scary_movie?
#=> false
सिनेमा में एक मूवी क्लब कार्यक्रम है। सदस्यों को कोई भी फिल्म देखने पर मुफ्त पॉपकॉर्न मिलता है।
Moviegoer.claim_free_popcorn! मेथड को लागू कीजिए।
अगर कोई दर्शक मूवी क्लब का सदस्य है, तो उसे उसका मुफ्त पॉपकॉर्न मिलना चाहिए।
अगर वह सदस्य नहीं है, तो मेथड को कोड के शीर्ष पर परिभाषित UnsupportedOperation एक्सेप्शन उठाना चाहिए।
Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿
Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
इस अभ्यास में आपको UnsupportedOperation एक्सेप्शन को एक विशेष स्कोप के लिए परिभाषित करना है।
Exercism पर साइन अप कीजिए और Ruby को 21 कॉन्सेप्ट121 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।