1. বহু-পছন্দ অপারেটর:switch
জাভার আরেকটি আকর্ষণীয় অপারেটর রয়েছে যা এটি তার দাদাপিপি (C++) থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। আমরা switch
বিবৃতি সম্পর্কে কথা বলছি. আমরা একে বহু-পছন্দের অপারেটরও বলতে পারি। এটা একটু কষ্টকর দেখায়:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
একটি অভিব্যক্তি বা পরিবর্তনশীল বন্ধনীর মধ্যে নির্দেশিত হয়। যদি এক্সপ্রেশনের মান হয় value1
, জাভা মেশিন কার্যকর করা শুরু করে code1
। যদি এক্সপ্রেশনটি সমান হয় value2
, তাহলে এক্সিকিউশন লাফিয়ে যায় code2
। যদি এক্সপ্রেশনটি সমান হয় value3
, তাহলে code3
নির্বাহ করা হয়।
উদাহরণ:
কোড | কনসোল আউটপুট |
---|---|
|
|
2. break
বিবৃতি ইনswitch
একটি switch
বিবৃতির একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল যে প্রোগ্রামটি কেবলমাত্র প্রয়োজনীয় লাইনে (প্রয়োজনীয় কোড ব্লকে) লাফ দেয় এবং তারপরে শেষ না হওয়া পর্যন্ত কোডের সমস্ত ব্লক কার্যকর করে switch
। শুধু কোডের ব্লকের মানই নয় switch
, কোডের সব ব্লকের শেষ পর্যন্ত মানের সাথে মিল রয়েছে switch
।
উদাহরণ:
কোড | কনসোল আউটপুট |
---|---|
|
|
36-এর তাপমাত্রা দেওয়া হলে, প্রোগ্রামটি switch
স্টেটমেন্টে প্রবেশ করবে, কোডের প্রথম ব্লকে (প্রথম ক্ষেত্রে) ঝাঁপ দেবে এবং কার্যকর করবে, এবং তারপর কোডের বাকি ব্লকগুলিকে আনন্দের সাথে চালাবে।
আপনি যদি শুধুমাত্র কোডের একটি ব্লক চালাতে চান — মিলিত ক্ষেত্রের সাথে যুক্ত কোডের ব্লক — তাহলে আপনাকে একটি break
বিবৃতি দিয়ে ব্লকটি শেষ করতে হবে ;
উদাহরণ:
কোড | কনসোল আউটপুট |
---|---|
|
|
break
আপনি স্টেটমেন্টের শেষ ক্ষেত্রে বাদ দিতে পারেন switch
, যেহেতু সেই ব্লকটি ব্রেক স্টেটমেন্ট সহ বা ছাড়াই শেষ।
3. ডিফল্ট অ্যাকশন:default
আরেকটি গুরুত্বপূর্ণ পয়েন্ট। কি হবে যদি তালিকাভুক্ত কোনো ক্ষেত্রেই switch
বন্ধনীর অভিব্যক্তির সাথে মেলে না?
যদি একটি ম্যাচিং কেস পাওয়া না যায়, তাহলে স্টেটমেন্টের বাকি অংশটি এড়িয়ে যাবে এবং বিবৃতিটি switch
শেষ করার পর কোঁকড়া বন্ধনীর পরে প্রোগ্রামটি কার্যকর করা হবে ।switch
switch
যে বলেন, আপনি একটি বিবৃতি একটি বিবৃতি অন্য শাখা মত আচরণ করতে পারেন if-else
. এটি করতে, default
কীওয়ার্ড ব্যবহার করুন।
case
যদি ব্লকের s-এর কোনোটিই switch
এক্সপ্রেশনের মানের সাথে মেলে না এবং switch
একটি ব্লক থাকে default
, তাহলে ডিফল্ট ব্লকটি কার্যকর করা হবে। উদাহরণ:
কোড | কনসোল আউটপুট |
---|---|
|
|
4. তুলনা switch
এবংif-else
বিবৃতিটি switch
কিছুটা বিবৃতির মতো if-else
, কেবল আরও জটিল।
আপনি সর্বদা একাধিক বিবৃতি switch
হিসাবে একটি বিবৃতির কোড পুনরায় লিখতে পারেন । if
উদাহরণ:
সুইচ সহ কোড | if-else দিয়ে কোড করুন |
---|---|
|
|
বাম দিকের কোডটি ডানদিকের কোডের মতই কাজ করবে।
একাধিক if-else
স্টেটমেন্টের একটি চেইন বাঞ্ছনীয় যখন একটি if
বিবৃতি প্রতিটি পৃথক ক্ষেত্রে বিভিন্ন জটিল অভিব্যক্তি ধারণ করে।
5. একটি বিবৃতিতে কোন অভিব্যক্তি ব্যবহার করা যেতে পারে switch
?
case
একটি বিবৃতিতে সব ধরনের লেবেল হিসেবে ব্যবহার করা যাবে না switch
। আপনি নিম্নলিখিত ধরনের আক্ষরিক ব্যবহার করতে পারেন:
- পূর্ণসংখ্যার ধরন:
byte
,short
,int
,long
char
String
- যে কোন
enum
প্রকার
আপনি কেস লেবেল হিসাবে অন্য কোন প্রকার ব্যবহার করতে পারবেন না ।
enum
একটি বিবৃতি ভিতরে ব্যবহার করার উদাহরণ switch
:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
দ্রষ্টব্য: আপনি যদি একটি বিবৃতি enum
ভিতরে ব্যবহার করেন, তাহলে আপনাকে লেবেলের switch
প্রতিটি মানের সামনে ক্লাসের নাম লিখতে হবে না । case
শুধু মান লিখলেই যথেষ্ট।