কম্পিউটার টিউটোরিয়াল

জাভা Switch স্টেটমেন্ট: ব্যবহার করার পদ্ধতি

কন্ডিশনাল স্টেটমেন্ট সকল প্রোগ্রামিং ল্যাঙ্গুয়েজের একটি সাধারণ ফিচার। প্রোগ্রামের ফ্লো কন্ট্রোল করতে আমরা কন্ডিশনাল স্টেটমেন্ট ব্যবহার করি। জাভাতে, নির্দিষ্ট শর্তের উপর ভিত্তি করে প্রোগ্রাম ফ্লো কন্ট্রোল করার জন্য if...else স্টেটমেন্ট ব্যবহার করা হয়।

অতিরিক্তভাবে, জাভা switch স্টেটমেন্ট নামে একটি ফিচার অফার করে, যা একটি এক্সপ্রেশনকে একাধিক কেসের বিরুদ্ধে ইভ্যালুয়েট করে। যদি কোনো স্টেটমেন্ট নির্দিষ্ট কেসের সাথে মিলে, তবে সেই কেসের সাথে সম্পর্কিত কোড ব্লক এক্সিকিউট হবে।

এই টিউটোরিয়ালে জাভাতে "switch" স্টেটমেন্ট কীভাবে ব্যবহার করতে হয়, এবং default, case এবং break কীওয়ার্ডগুলো কীভাবে ব্যবহার করতে হয় তা আলোচনা করা হয়েছে। আমরা জাভা switch স্টেটমেন্টে এই কীওয়ার্ডগুলো ব্যবহারের একটি উদাহরণও দেখব।

কন্ডিশনাল স্টেটমেন্ট রিফ্রেশার

কন্ডিশনাল স্টেটমেন্ট প্রোগ্রামকে কোড এক্সিকিউট করার অনুমতি দেয় যখন একটি নির্দিষ্ট কন্ডিশন true হিসেবে ইভ্যালুয়েট হয়। উদাহরণস্বরূপ, একটি কন্ডিশনাল স্টেটমেন্ট প্রোগ্রামকে বলে দিতে পারে যে শুধু name ভেরিয়েবলে F অক্ষর থাকলে কোড ব্লকটি রান করবে।

জাভাতে, আপনার কোডের ফ্লো কন্ট্রোল করার জন্য দুটি কন্ডিশনাল স্টেটমেন্ট ব্যবহার করতে পারেন: if...else স্টেটমেন্ট এবং switch স্টেটমেন্ট।

if...else স্টেটমেন্ট একটি কন্ডিশন true হিসেবে ইভ্যালুয়েট হলে কোড ব্লক এক্সিকিউট করে। জাভাতে if স্টেটমেন্টের একটি উদাহরণ:

if (15 > 5) { System.out.println("১৫, ৫-এর চেয়ে বড়।"); }; 

আমাদের কোড 15 > 5 এক্সপ্রেশন ইভ্যালুয়েট করে, যা true, তাই নিচের আউটপুট রিটার্ন করে:

১৫, ৫-এর চেয়ে বড়।

অতিরিক্তভাবে, আপনি else ব্লক নির্দিষ্ট করতে পারেন, যা সকল কন্ডিশন false হলে কোড রান করবে, এবং else...if ব্লক যা প্রথম কন্ডিশন false হলে পরীক্ষা করার জন্য একটি নতুন কন্ডিশন নির্দিষ্ট করে।

switch স্টেটমেন্টও আপনার কোডে কন্ডিশনাল ইভ্যালুয়েশন পারফর্ম করতে ব্যবহার করা যায়।

Switch স্টেটমেন্ট জাভা

জাভা switch স্টেটমেন্ট একটি স্টেটমেন্টকে এক বা একাধিক কন্ডিশনের বিরুদ্ধে ইভ্যালুয়েট করতে এবং true হিসেবে ইভ্যালুয়েট হওয়া কন্ডিশনগুলোই সাথে সম্পর্কিত কোড ব্লক এক্সিকিউট করতে ব্যবহৃত হয়। 

switch স্টেটমেন্টে একটি case স্টেটমেন্ট থাকে, যা aquell কন্ডিশনগুলো নির্দিষ্ট করতে ব্যবহৃত হয় যাদের বিরুদ্ধে একটি এক্সপ্রেশন ইভ্যালুয়েট করা হবে। জাভা switch স্টেটমেন্টের সিনট্যাক্স নিচে দেওয়া হলো:

switch(expression) { case a: break; case b: break; case c: break; default: break; } 

এটি কীভাবে কাজ করে তা ভাঙে দেখা যাক।

সুইচ স্টেটমেন্টে থাকা এক্সপ্রেশন একবার ইভ্যালুয়েট হয়। তারপর, এক্সপ্রেশনটির মান প্রতিটি case এর মানসহ তুলনা করা হয়, সুইচ স্টেটমেন্টের উপরে থেকে শুরু করে। যদি এক্সপ্রেশনটি কোনো কেসের সাথে মিলে, তবে সেই কেস স্টেটমেন্টের সাথে যুক্ত কোড ব্লক এক্সিকিউট হয়। যদি এক্সপ্রেশনটি কোনো কেসের সাথে না মিলে, তবে পরবর্তী কেস লেবেল ইভ্যালুয়েট হবে।

যদি আমাদের কোনো কন্ডিশন true হিসেবে ইভ্যালুয়েট না হয়, তবে default স্টেটমেন্টের কন্টেন্ট এক্সিকিউট হবে। 

Switch স্টেটমেন্ট উদাহরণ

Switch স্টেটমেন্ট কীভাবে কাজ করে তা বোঝানোর জন্য একটি ওয়ার্কিং উদাহরণ দেখা যাক। ধরা যাক আমরা একটি প্রোগ্রাম তৈরি করতে চাই যা মাসের নümerিক ভ্যালু থেকে মাসের নাম বতাবে। আমরা শুধু বছরের প্রথম ছয় মাসের সাথে আমাদের প্রোগ্রাম কাজ করাতে চাই।

এই প্রোগ্রাম তৈরির জন্য, আমরা বর্তমান মাসের নümerিক ভ্যালু পেতে time.LocalDate জাভা মেথড ব্যবহার করব। সংখ্যা ১ জানুয়ারিকে রিপ্রেজেন্ট করে, ২ ফেব্রুয়ারিকে, এবং ইত্যাদি।

শুরু করার আগে, আমরা প্রথমে বর্তমান মাসের নümerিক ভ্যালু পেতে কোড সেট আপ করব। এটি করার কোড নিচে দেওয়া হলো:

LocalDate today = LocalDate.now(); int month = today.getMonthValue(); System.out.println(month); 

আমাদের কোড বর্তমান মাসকে রিপ্রেজেন্ট করা নümerিক ভ্যালু রিটার্ন করে, যা এই কেসে ২ (এই আর্টিকেল ফেব্রুয়ারি মাসে লেখা হয়েছে)।

switch স্টেটমেন্ট ব্যবহার করে, আমরা আমাদের কোডে ক্যালকুলেট করা নümerিক ভ্যালুতে ভিত্তি করে কনসোলে মাসের নামসহ একটি মেসেজ পাঠাতে পারি। প্রোগ্রাম উপর থেকে নিচে চলে এবং একটি ম্যাচ খুঁজে বের করে। একবার ম্যাচ পাওয়া গেলে, break স্টেটমেন্ট switch স্টেটমেন্ট রোকা দিয়ে প্রোগ্রাম এক্সিকিউট করতে থাকবে।

আমাদের ক্যালেন্ডার প্রোগ্রামের জন্য আমরা যে কোডটি ব্যবহার করতে পারি সেটি নিচে দেওয়া হলো:

LocalDate today = LocalDate.now(); int month = today.getMonthValue(); switch (month) { case 1: System.out.println("জানুয়ারি"); break; case 2: System.out.println("ফেব্রুয়ারি"); break; case 3: System.out.println("মার্চ"); break; case 4: System.out.println("এপ্রিল"); break; case 5: System.out.println("মে"); break; case 6: System.out.println("জুন"); break; } 

যখন আমরা আমাদের কোড এক্সিকিউট করি, নিচের রেসপন্স রিটার্ন হয়: ফেব্রুয়ারি।

আমাদের কোড কীভাবে কাজ করে তা ভাঙে দেখা যাক। শুরুতে, আমরা LocalDate মেথড ব্যবহার করে এই মাসকে রিপ্রেজেন্ট করা নümerিক ভ্যালু পাই। তারপর, আমরা ছয়টি কেস সহ একটি switch স্টেটমেন্ট সংজ্ঞায়িত করি।

প্রোগ্রাম প্রতিটি কেস একে একে এক্সিকিউট করে যতক্ষণ না একটি true হিসেবে ইভ্যালুয়েট হয়। এই কেসে, case 2 স্টেটমেন্ট true হিসেবে ইভ্যালুয়েট হয়, কারণ এখন ফেব্রুয়ারি, যার নümerিক ভ্যালু ২। তারপর, আমাদের প্রোগ্রাম কনসোলে মাসের নাম প্রিন্ট করে এবং একটি break স্টেটমেন্ট এক্সিকিউট করে, যা আমাদের প্রোগ্রামকে চলতে বাধা দেয়।

যদি এখন মে মাস হতো, উদাহরণস্বরূপ, মাস ভ্যালু ৫ হতো, এবং মে কনসোলে প্রিন্ট হতো।

Break কীওয়ার্ড

আমাদের উপরের কোডে, আমরা break কীওয়ার্ড ব্যবহার করেছি। যখন জাভা একটি break স্টেটমেন্ট এক্সিকিউট করে, এটি switch ব্লকের ভেতরের কোড রান করা বন্ধ করে এবং প্রোগ্রাম চালিয়ে রাখে।

এই স্টেটমেন্ট গুরুত্বপূর্ণ কারণ এটি প্রোগ্রামকে আরও কেস টেস্ট করতে বাধা দেয় যখন একটি কেস ইতিমধ্যে পূরণ হয়েছে। এটি এক্সিকিউশন টাইম বাঁচায় কারণ প্রোগ্রামকে সঠিক কেস পাওয়ার পর আরও কেস ইভ্যালুয়েট করতে হয় না। আপনাকে প্রতিটি case-এর শেষে break স্টেটমেন্ট ব্যবহার করা উচিত।

আমাদের উপরের কোড থেকে break স্টেটমেন্টের একটি উদাহরণ:

… case 4: System.out.println("এপ্রিল"); break; … 

যদি এপ্রিল মাস হতো, এই কেস এক্সিকিউট হতো, এবং তারপর প্রোগ্রাম switch স্টেটমেন্ট থেকে বের হয়ে যেতো কারণ break স্টেটমেন্ট উপস্থিত।

Default কীওয়ার্ড

default কীওয়ার্ড সেই কোড নির্দিষ্ট করতে ব্যবহৃত হয় যা কোনো কেস না পাওয়া গেলে রান করা উচিত। আমাদের উপরের উদাহরণে, আমরা একটি প্রোগ্রাম সংজ্ঞায়িত করেছি যা একটি মাসের নাম রিটার্ন করে, কিন্তু শুধু জানুয়ারি থেকে জুন পর্যন্ত।

কিন্তু যদি আমরা চাই যে আমাদের ইউজারকে একটি ডিফল্ট মেসেজ দেখানো হয় জুনের পর এলো যদি কোনো কেস true হিসেবে ইভ্যালুয়েট না হয়? সেখানে default কীওয়ার্ড কাজে আসে।

উপরের উদাহরণের সাথে default কীওয়ার্ড ব্যবহার করে একটি মেসেজ নির্দিষ্ট করার উদাহরণ নিচে দেওয়া হলো যা কোনো কেস true হিসেবে ইভ্যালুয়েট না হলে দেখাবে:

case 4: System.out.println("এপ্রিল"); break; case 5: System.out.println("মে"); break; case 6: System.out.println("জুন"); break; default: System.out.println("জুনের পর এলো!") break; … 

যদি জুলাই হতো এবং আমরা আমাদের প্রোগ্রাম এক্সিকিউট করতাম, তবে default স্টেটমেন্টের কন্টেন্ট এক্সিকিউট হতো কারণ কোনো কেস true হিসেবে ইভ্যালুয়েট হয়নি। তারপর, জুনের পর এলো! মেসেজ কনসোলে প্রিন্ট হতো।

উপসংহার

জাভা switch স্টেটমেন্ট একটি স্টেটমেন্টকে একাধিক কেসের বিরুদ্ধে ইভ্যালুয়েট করতে এবং নির্দিষ্ট কেস পূরণ হলে কোড এক্সিকিউট করতে ব্যবহৃত হয়। Switch স্টেটমেন্ট প্রোগ্রামের ফ্লো কন্ট্রোল করতে ব্যবহৃত একটি কন্ডিশনাল স্টেটমেন্টের রূপ।

এই টিউটোরিয়ালে জাভাতে switch স্টেটমেন্ট কীভাবে ব্যবহার করতে হয়, এবং case, break, এবং default স্টেটমেন্ট switch মেথডের সাথে কীভাবে ব্যবহার করতে হয় তা আলোচনা করা হয়েছে। আরও, আমরা এই কীওয়ার্ডগুলো ব্যবহারের একটি switch স্টেটমেন্ট উদাহরণ দেখেছি।

এখন আপনি জাভাতে switch স্টেটমেন্ট এক্সপার্টের মতো ব্যবহার করতে পারবেন!

  1. সামসাং স্মার্ট সুইচ ব্যবহারের পদ্ধতি

  2. জাভা Math.random ব্যবহার করার পদ্ধতি

  3. জাভাতে সাব-প্যাকেজ ব্যবহার করা

  4. macOS-এ Homebrew দিয়ে একাধিক জাভা ভার্সন ইনস্টল ও ম্যানেজ করা