শর্ত ছাড়া জীবন অনেকটা লবণ ছাড়া তরকারির মতো। শর্ত বা কন্ডিশন না থাকলে আপনার জীবন হয়ে যেতো পানসে, বোরিং এবং অলস ধরনের।
রাসেল ভাই যদি চা খাওয়ানোর শর্ত, কিংবা আবাসিক কোর্সের শর্ত না দিতেন তাহলে কি এতো কষ্ট করে আমার লেখা পড়তেন?
যাইহোক, আসুন কিছু বিচ্ছিন্ন ঘটনা দেখে আসি।
১। আপনি কি বৃষ্টির দিনে খিচুড়ি পছন্দ করেন নাকি পোলাও? ফেসবুক বেশি চালান নাকি ইন্সটাগ্রাম?
২। চা যদি রাসেল ভাইয়ের হয়, তাহলে খাবো, না হলে না! (আমি অবশ্যই ‘খাবো-র’ দলে)
৩। আপনার বন্ধু ফোন দিয়ে বিকেলে দেখা করতে বলেছে। কিন্তু আপনি চাচ্ছেন কম্বল মুড়ি দিয়ে ঘুমোতে। সেজন্য আপনার বন্ধুকে বললেন, “তুই নাস্তার বিল দিলে আমি আসবো”।
যদি এই তিনটি ঘটনা বুঝতে পারেন, তাহলে কোডিং এর অংশটুকুও বুঝতে পারবেন, ইন-শা-আল্লাহ!
let friendPayBill = true; // বন্ধু বিল দেবে
if (friendPayBill === true) {
console.log("বন্ধু বিল দিচ্ছে! চল দেখা করি! 🍔");
} else {
console.log("নাহ! আমি কম্বল মুড়ি দিয়ে ঘুমাবো! 😴");
}
দেখেন, কতো সহজে আমরা ২ বন্ধুর দুষ্টমি কোডিং দিয়ে সমাধান করলাম। এই ঘটনায় আপনার বন্ধু নাস্তার বিল দিলে আপনি কম্বলের নিচ থেকে উঠে নাস্তা খেতে যাবেন। কিন্তু যদি বিল না দেয়, তাহলে আপনি আরামে ঘুমাবেন।
এবার রাসেল ভাইয়ের চায়ের ক্ষেত্রে কোড কি হতে পারে? ইকটু ভাবুন তো!
কেনো if-else ব্যবহার করা হয়?
- if-else ইউজারের ইনপুট যাচাই করতে পারে।
- এটি ব্যবহারের দ্বারা আমাদের কোড সিদ্ধান্ত নেওয়া শেখে।
- শর্তের ক্ষেত্রে বিকল্প পথে যেতে সাহায্য করে if-else.
if
এই ঘটনাগুলোর ক্ষেত্রে খুব সহজ ভাষায় বোঝার চেষ্টা করলে, if হলো শর্ত চেক করার পাহারাদার। যদি if সত্যি হয় তাহলে ঘটনা ঘটে যাবে। নইলে অন্যকিছু হবে। যেমনঃ
let friendPayBill = true; // বন্ধু বিল দেবে
if (friendPayBill === true) {
console.log("বন্ধু বিল দিচ্ছে! চল দেখা করি! 🍔");
}
if-else
যদি if এর বিষয়টি সত্যি না হয়, সেক্ষেত্রে else এর ঘটনা ঘটবে। যেমনঃ নিচের ঘটনায় আমার পেট ভরা। সেজন্য বিরিয়ানি না খেয়ে ইকটু স্বাস্থ্যসচেতন হলাম! কি একটা অবস্থা!
let iAmHungry = false;
if (iAmHungry === true) {
console.log("চলো, বিরিয়ানি খাই!");
} else {
console.log("না, আমি ডায়েট করছি!");
}
if-else if-else
জীবন বোরিং হয়ে গেলে আমরা ঘুরতে যাই। আমাদের বক্কর ভাইও পার্কে গিয়েছেন। সেখানে গেটে বেশ বড় করে লিখা,
“৭ বছর পর্যন্ত বাচ্চাদের প্রবেশ মূল্য ফ্রি”
“১৪ বছর পর্যন্ত বাচ্চাদের ক্ষেত্রে ৫০% ছাড়”
এই জিনসটিকে বক্কর ভাই জাভাস্ক্রিপ্ট দিয়ে করার চেষ্টা করলো। ইকটু ভেঙ্গে বললেঃ
১। ৭ বছর অথবা তার সমান হলে প্রবেশ মূল্য ফ্রি! অর্থাৎ ৭ বছরের কম সবাই ফ্রিতে যেতে পারবে।
২। ১৪ বছর অথবা তার সমান হলে প্রবেশ মূল্য ৫০% দিতে হবে। অর্থাৎ ১৪ বছরের কম সবাইকে ৫০% টাকা দিলেই হবে।
৩। বাকিদের ক্ষেত্রে পুরো টাকা দিতে হবে।
যেহেতু এখানে টোটাল ৩ টি ঘটনা ঘটেছে। তাই প্রথমে if, মাঝখানে else-if এবং সবার শেষে else দিয়ে আমরা কোড করবো। কেমন?
let ticketPrice = 300;
let myAge = 11;
if (myAge <= 7) {
console.log("আমার টিকেটের টাকা লাগবে না।");
} else if (myAge <= 14) {
const myTicketPrice = ticketPrice / 2; // কোনো কিছুকে ২ দিয়ে ভাগ করলে ৫০% বের করা হয়ে যায়।
console.log(myTicketPrice);
} else {
console.log(ticketPrice);
}
Ternary Operator
Ternary Operator হল একটি সংক্ষিপ্ত রূপে if-else লেখার পদ্ধতি। এটি মূলত দুটি বিকল্প শর্তের মধ্যে নির্বাচন করতে ব্যবহৃত হয় এবং এটি কোডের লাইন কমাতে সাহায্য করে। জাভাস্ক্রিপ্টে এটি একটি একক লাইনে শর্ত নির্ধারণ করতে ব্যবহৃত হয়।
মনে করুন, আপনার বয়স ১৫। এই বয়সে আপনি ভোট দিতে চাচ্ছেন। কিন্তু ১৮ বছরের আগে ভোট দিতে পারবেন না। সেক্ষেত্রে আপনার কোড কেমন হতে পারে? if-else দিয়ে আমরা কীভাবে লিখতাম? চলুন দেখি-
let age = 15;
if (age >= 18) {
console.log("Ready for Vote");
} else {
console.log("You are child!");
}
এভাবে ৪ লাইনে আমি/আপনি if-else দিয়ে লিখে আসছি। কিন্তু এটিকে আরও সহজে সিম্পলভাবে লিখা যায়। যেমনঃ
age >= 18 ? console.log("Ready for Vote!") : console.log("You are child");
অবিশ্বাস্য হলেও মাত্র ১ লাইনে আপনার কোড কাজ করবে। এটি লিখতে ৫ টি ধাপ রয়েছে। যেমনঃ
-
- প্রথমে শর্ত লিখতে হবে।
-
- প্রশ্নবোধক চিহ্ন দিতে হবে (?)।
-
- প্রথম শর্ত লিখবেন (ঐ if এর ভিতরে যা লিখতেন আর কি!)
-
- কোলন দিতে হবে। (ঃ)
-
- বাকি অংশ লিখবেন (ঐ else এর ভিতরে যা লিখতেন আর কি!)
কোথায় Ternary ব্যবহার করবেন না?
যদি শর্তের মধ্যে অনেকগুলি শাখা (branches) থাকে (যেমন অনেক
if-else বা else-if), তাহলে ternary operator লেখার সময় কোড অনেক জটিল হয়ে যেতে পারে। সেক্ষেত্রে, সুস্পষ্ট কোডের জন্য if-else ব্যবহার করা ভালো হবে।
switch
এটি ইকটু ভিন্ন ধরনের কাজ করে। প্রথমে জেনে রাখা ভালো, কেনো সুইচ ব্যবহার করবেন।
১। কমপ্লেক্স কোডিং এ সিম্পল সলিউশন: যদি অনেক গুলো শর্ত থাকে, তবে switch অনেক সহজ ও দ্রুত কাজ করে।
২। কোড দেখতে পরিষ্কার: একে একে সবগুলো শর্ত দেখতে ভালো লাগে, এবং সহজে বোঝা যায় যে কী ঘটবে।
৩। স্কেলেবল: ভবিষ্যতে যদি আরও শর্ত যোগ করতে হয়, তো এটি সহজেই যোগ করা যাবে!
আবার সেই টিকেটের উদাহরণ দেখি চলুন। এটিকে সুইচ-কেস দিয়ে সমাধান করার চেষ্টা করি।
let ticketPrice = 300;
let myAge = 21;
switch (true) {
case myAge <= 7:
console.log("Ticket is free");
break;
case myAge <= 14:
const myTicketPrice = ticketPrice / 2;
console.log("My Ticket Price is " + myTicketPrice + " Taka only");
break;
case myAge >= 18:
console.log(ticketPrice);
break;
}
এখানে switch (true) বলতে আমরা বুঝিয়েছি, শর্তগুলোর মধ্যে যেটি সত্য হবে, সেটি চালু হবে। সাধারণত switch স্টেটমেন্টে একটি নির্দিষ্ট ভ্যালু চেক করা হয়। কিন্তু আমরা যদি true লিখে দিই, তাহলে পরবর্তী case গুলোর শর্তগুলো একে
একে পরীক্ষা করা হবে। অর্থাৎ, এখানে “true” এক ধরনের dummy value হিসেবে কাজ করছে।
এরপর, সেকেন্ড ব্র্যাকেটের ভিতরে আমাদের বিভিন্ন case দিতে হবে। case অনেকটা if এর মতো। তাই case লিখার পর শর্ত লিখবেন। এরপর কোলন দিয়ে console.log()। ব্যাপারটা মজার না?
আরেকটি বিষয়, এখানে প্রতিটি শর্তের পরে break ব্যবহার করা হয়েছে। সহজ ভাষায় এটি একটি প্যারামিটার বা সত্য-মিথ্যার মানদন্ড। যদি case এর ভিতরেরে অংশ শর্তের সাথে মিলে যায় তাহলে (break) এর জন্য পুরো switch-ব্লক এটি থেকে বের হয়ে যাবে।