টার্নারি কন্ডিশনাল হলো সাধারণ 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
এই অনুশীলনীতে আপনি একটি সিনেমা হলের ওয়েবসাইটের জন্য নিয়মগুলো তৈরি করবেন।
সিনেমা হলটি "বার্ধক্যভাতা"-র জন্য ছাড় দেয়। যে কেউ ৬০ বছর বা তার বেশি বয়সী, সে একটি টিকিটের জন্য ১০.০০ দেয়। আর যে কম বয়সী, সে পুরো ১৫.০০ দেয়।
টার্নারি স্টেটমেন্ট ব্যবহার করে Moviegoer#ticket_price মেথডটি লিখুন।
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
সিনেমা হলে একটি সরলীকৃত বয়স যাচাই ব্যবস্থা আছে। আপনার বয়স ১৮ বা তার বেশি হলে আপনি ভয়ের সিনেমা দেখতে পারবেন। কম হলে পারবেন না।
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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।