প্রোগ্রামিং করার সময়, এমন কোড লিখা সাধারণ যা শুধু তখন এক্সিকিউট হবে যখন একটি নির্দিষ্ট কন্ডিশন পূরণ হয়।
উদাহরণস্বরূপ, আপনি আপনার ই-কমার্স সাইটে একটি অর্ডার শুধু তখন প্লেস করতে চাইতে পারেন যখন একটি ইউজার তাদের ঠিকানা সাবমিট করেছে। অথবা আপনি একটি কফি স্টোর চালাতে পারেন এবং যদি কোনো ইউজার গত সপ্তাহে পাঁচটির বেশি কফি অর্ডার করেছে হয়, তবে তাদের কফিতে ডিসকাউন্ট দিতে চাইতে পারেন।
প্রোগ্রামিংয়ে, আমরা এই উদ্দেশ্যে কন্ডিশনাল স্টেটমেন্ট ব্যবহার করি। কন্ডিশনাল স্টেটমেন্ট একটি কন্ডিশন true বা false হিসেবে ইভ্যালুয়েট হয় সেটি ভিত্তিক করে একটি নির্দিষ্ট কোড ব্লক এক্সিকিউট করে। জাভাতে, if...else স্টেটমেন্ট একটি কন্ট্রোল ফ্লো স্টেটমেন্ট যা আপনাকে একটি কোড ব্লক শুধু তখন এক্সিকিউট করতে দেয় যখন একটি নির্দিষ্ট কন্ডিশন পূরণ হয়।
এই টিউটোরিয়ালে জাভাতে if...else স্টেটমেন্ট কীভাবে ব্যবহার করতে হয় এবং জাভা প্রোগ্রামে if...else স্টেটমেন্ট ব্যবহারের কিছু উদাহরণ অন্বেষণ করা হয়েছে।
জাভা If স্টেটমেন্ট
সবচেয়ে বেসিক কন্ডিশনাল স্টেটমেন্ট হল if স্টেটমেন্ট। if স্টেটমেন্ট চেক করে একটি স্টেটমেন্ট true বা false কিনা, এবং শুধু তখন এক্সিকিউট হবে যখন স্টেটমেন্ট true এর সমান। যদি স্টেটমেন্ট false হিসেবে ইভ্যালুয়েট হয়, প্রোগ্রাম if স্টেটমেন্টকে বাদ দিয়ে প্রোগ্রামের বাকি অংশ চালিয়ে যাবে।
জাভাতে, if স্টেটমেন্ট নিচের तरह লিখা হয়:
if (condition_is_met) { // Execute code }
এটি ভাঙে দেখা যাক। আমাদের if স্টেটমেন্ট একটি condition গ্রহণ করে, যা একটি বুলিয়ান এক্সপ্রেশন যা true বা false মান রিটার্ন করে। তারপর, যে কোডটি কন্ডিশন true হিসেবে ইভ্যালুয়েট হলে এক্সিকিউট করা উচিত সেটি করলি ব্র্যাকেট ({}) এর মধ্যে লিপ্ত থাকে।
if স্টেটমেন্টের ভেতরের কোড ইন্ডেন্টেড থাকে। এছাড়া, জাভাতে অন্যান্য কোড লাইনের মত if স্টেটমেন্টের শেষে সেমিকোলন দরকার নয়।
এটি কীভাবে কাজ করে তা বোঝানোর জন্য একটি উদাহরণ দেখা যাক। মনে করুন আমরা একটি কফি শপ चलाাচ্ছি এবং গত সপ্তাহে পাঁচটির বেশি কফি অর্ডার করা যেকোনো কাস্টমারকে ১০% ডিসকাউন্ট অফার করতে চাই। আমরা কাস্টমার অফারের যোগ্য কিনা তা চেক করতে নিচের কোড ব্যবহার করতে পারি:
public class CheckDiscount { public static void main(String[] args) { int coffees_ordered_in_last_week = 4; int discount = 0; if (coffees_ordered_in_last_week > 5) { discount = 10; } System.out.println("এই কাস্টমার " + discount + "% ডিসকাউন্টের যোগ্য।"); } }
যখন আমরা আমাদের কোড এক্সিকিউট করি, নিচের রেসপন্স রিটার্ন হয়:
এই কাস্টমার 0% ডিসকাউন্টের যোগ্য।
আমাদের কোড ভাঙে ব্যাখ্যা করি। প্রথমে, আমরা CheckDiscount নামে একটি ক্লাস ঘোষণা করি যেখানে এই প্রোগ্রামের কোড রয়েছে।
পরবর্তী, আমরা coffees_ordered_in_last_week নামে একটি ভেরিয়েবল ঘোষণা করি যা ট্র্যাক করে আমাদের কাস্টমার গত সপ্তাহে কতটি কফি অর্ডার করেছেন। তারপর আমরা "discount" নামে একটি ভেরিয়েবল আরম্ভ করি যা ট্র্যাক করে আমাদের কাস্টমার কত ডিসকাউন্টের যোগ্য।
পরবর্তী লাইনে, আমরা একটি if স্টেটমেন্ট ব্যবহার করি যা চেক করে coffees_ordered_in_last_week কি ৫-এর চেয়ে বড়। যদি হয়, কাস্টমার ১০% ডিসকাউন্টের যোগ্য হবে; যদি না হয়, প্রোগ্রাম if স্টেটমেন্টের কোড বাদ দিয়ে চলে যাবে।
এই কেসে, আমাদের কাস্টমার গত সপ্তাহে শুধু চারটি কফি অর্ডার করেছেন, তাই আমাদের প্রোগ্রাম discount = 10 লাইন এক্সিকিউট করে না। আমাদের প্রোগ্রামের শেষে, আমরা কনসোলে একটি মেসেজ প্রিন্ট করি যা বলে, এই কাস্টমার [X]% ডিসকাউন্টের যোগ্য।, যেখানে X হলো প্রোগ্রাম দ্বারা নির্ধারিত ডিসকাউন্ট।
If Else জাভা
যখন আমরা একটি if স্টেটমেন্ট ব্যবহার করি, আমরা শুধু কোড এক্সিকিউট করি যখন একটি কন্ডিশন true। তবে অনেক সময়, আমরা চাই যদি কন্ডিশন false হয় তবে অন্য একটি কোড ব্লক রান করবে।
else স্টেটমেন্ট একটি if স্টেটমেন্টের পরে লেখা হয় এবং এর কোনো কন্ডিশন নেই। else স্টেটমेंट অপশনাল এবং শুধু তখন এক্সিকিউট হবে যখন if স্টেটমেন্টের কন্ডিশন false হিসেবে ইভ্যালুয়েট হয়।
জাভা if...else স্টেটমেন্টের সিনট্যাক্স নিচে দেওয়া হলো:
if (condition_is_met) { // Execute code } else { // Execute other code }
উপরের উদাহরণ ব্যবহার করে এটি কীভাবে কাজ করে তা বোঝা যাক। মনে করুন আমরা একটি প্রোমোশন চালাচ্ছি যেখানে প্রতিটি কাস্টমার শনিবার ৫% ডিসকাউন্টের যোগ্য। আজ শনিবার, তাই আমরা প্রতিটি কাস্টমারকে ৫% ডিসকাউন্ট দিতে চাই। এই ডিসকাউন্ট শুধু তাদের জন্য যারা গত সপ্তাহে পাঁচটির বেশি কফি অর্ডার করেননি, কারণ যারা পাঁচটির বেশি অর্ডার করেছেন তারা ১০% ডিসকাউন্টের যোগ্য।
গত সপ্তাহে পাঁচটির বেশি কফি অর্ডার করা কাস্টমারদের ১০% ডিসকাউন্ট, এবং অন্য সব কাস্টমারকে ৫% ডিসকাউন্ট দিতে আমরা নিচের প্রোগ্রাম ব্যবহার করতে পারি:
class CheckDiscount { public static void main(String[] args) { int coffees_ordered_in_last_week = 4; int discount = 0; if (coffees_ordered_in_last_week > 5) { discount = 10; } else { discount = 5; } System.out.println("এই কাস্টমার " + discount + "% ডিসকাউন্টের যোগ্য।"); } }
আমাদের কোড রিটার্ন করে:
এই কাস্টমার 5% ডিসকাউন্টের যোগ্য।
আমাদের কোড আমাদের প্রথম উদাহরণের মতোই কাজ করে। তবে, এই বার, আমরা আমাদের কোডে একটি else স্টেটমেন্ট নির্দিষ্ট করেছি, যা coffees_ordered_in_last_week > 5 স্টেটমেন্ট false হিসেবে ইভ্যালুয়েট হলে রান করবে। এই কেসে, আমাদের কাস্টমার পাঁচটি কফি অর্ডার করেননি, তাই সেই স্টেটমেন্ট false হিসেবে ইভ্যালুয়েট হয়।
ফলস্বরূপ, আমাদের প্রোগ্রাম else ব্লকের কন্টেন্ট এক্সিকিউট করে, যা discount ভেরিয়েবলের মান পাঁচ সেট করে। তাই, যখন আমাদের প্রোগ্রাম কাস্টমারের ডিসকাউন্ট বলে, ৫% ডিসকাউন্ট হিসেবে ঘোষণা করা হয়।
If Else If জাভা
আপনি এমন একটি প্রোগ্রাম লিখতে পারেন যেখানে আপনি একাধিক স্টেটমেন্ট ইভ্যালুয়েট করতে চান এবং কোনো স্টেটমেন্ট true হিসেবে ইভ্যালুয়েট হলে (যদি কোনো থাকে) সেটি ভিত্তিক করে কোড এক্সিকিউট করতে চান। সেখানে if...else...if স্টেটমেন্ট কাজে আসে। if...else...if স্টেটমেন্ট একটি স্টেটমেন্ট চেক করে, তারপর পরবর্তী স্টেটমেন্টগুলো ইভ্যালুয়েট করে।
জাভা if...else...if স্টেটমেন্টের সিনট্যাক্স নিচে দেওয়া হলো:
if (condition1_is_met) { // Run condition 1 code } else if (condition2_is_met) { // Run condition 2 code } else { // Run other code }
if স্টেটমেন্টগুলো উপর থেকে নিচে এক্সিকিউট হয়। যখন একটি এক্সপ্রেশন true হিসেবে ইভ্যালুয়েট হয়, সংশ্লিষ্ট ব্লকের কোড এক্সিকিউট হবে। যদি কোনো এক্সপ্রেশন true হিসেবে ইভ্যালুয়েট না হয়, else স্টেটমেন্টের কোড রান করবে।
মনে করুন আমরা গত সপ্তাহে দশটির বেশি কফি অর্ডার করা সবারকে ১৫% ডিসকাউন্ট অফার করতে চাই। এই কাস্টমাররা প্রায়শই তাদের বন্ধু বা অফিসের জন্য অর্ডার করে, তাই আমরা তাদের রিটার্ন করাতে যত্নের চেষ্টা করি।
এই ডিসকাউন্ট অফার করতে, আমাদের শনিবার ৫% ডিসকাউন্ট এবং গত সপ্তাহে পাঁচটির বেশি কফি অর্ডার করা লোকদের ১০% ডিসকাউন্টের পাশাপাশি, আমরা নিচের কোড ব্যবহার করতে পারি:
class CheckDiscount { public static void main(String[] args) { int coffees_ordered_in_last_week = 4; int discount = 0; if (coffees_ordered_in_last_week > 5) { discount = 10; } else if (coffees_ordered_in_last_weel > 10) { discount = 15; } else { discount = 5; } System.out.println("এই কাস্টমার " + discount + "% ডিসকাউন্টের যোগ্য।"); } }
যখন আমরা আমাদের কোড রান করি, নিচের আউটপুট রিটার্ন হয়:
এই কাস্টমার 5% ডিসকাউন্টের যোগ্য।
আমাদের কাস্টমার গত সপ্তাহে শুধু চারটি কফি অর্ডার করেছেন, তাই আমাদের else স্টেটমেন্টের কন্টেন্ট এক্সিকিউট হয়। কিন্তু যদি আমাদের কাস্টমার পাঁচটির বেশি কফি অর্ডার করতেন, discount ভেরিয়েবলের মান ১০ সেট হতো; যদি আমাদের কাস্টমার দশটির বেশি কফি অর্ডার করতেন, discount ভেরিয়েবলের মান পনেরো সেট হতো।
উপসংহার
if স্টেটমেন্ট জাভাতে একটি কোড ব্লক রান করতে ব্যবহৃত হয় যদি একটি নির্দিষ্ট কন্ডিশন true হিসেবে ইভ্যালুয়েট হয়। if...else স্টেটমেন্ট if স্টেটমেন্টের সাথে ব্যবহার করা হয় যাতে কন্ডিশন false হিসেবে ইভ্যালুয়েট হলে কোড রান করতে পারে। এছাড়া, if...else...if স্টেটমেন্ট একাধিক কন্ডিশন ইভ্যালুয়েট করতে ব্যবহৃত হয়।
এই টিউটোরিয়ালে উদাহরণসহ if, if...else, এবং if...else...if স্টেটমেন্ট ব্যবহার করে আপনার জাভা প্রোগ্রামের ফ্লো কন্ট্রোল করার পদ্ধতি আলোচনা করা হয়েছে। আপনি এখন এই জাভা কন্ডিশনাল স্টেটমেন্ট এক্সপার্টের মতো ব্যবহার করতে পারবেন!