If-else, Switch Case, এবং Ternary Operator জাভার তিনটি গুরুত্বপূর্ণ কন্ট্রোল স্টেটমেন্ট যা শর্তাধীন লজিক প্রয়োগ করতে ব্যবহৃত হয়। এই তিনটির মধ্যে পার্থক্যগুলো নিম্নে আলোচনা করা হলো:
1. If-else Statement
If-else একটি শর্তাধীন কন্ট্রোল স্টেটমেন্ট, যা একাধিক শর্ত যাচাই করতে ব্যবহৃত হয়। এটি একাধিক শর্তের মধ্যে উপযুক্ত শর্তটি নির্বাচিত করতে সাহায্য করে। সাধারণত যখন শর্তের মধ্যে বিভিন্ন পরিস্থিতি পরীক্ষা করতে হয় তখন if-else ব্যবহৃত হয়।
Syntax:
if (condition1) {
// Code block if condition1 is true
} else if (condition2) {
// Code block if condition2 is true
} else {
// Code block if none of the conditions is true
}
বিশেষত্ব:
- একাধিক শর্ত যাচাই করতে সক্ষম।
- শর্তগুলি সব ধরনের এক্সপ্রেশন (যেমন:
==,>,<,&&,||) ব্যবহার করে। - কোডের মধ্যে আরো অনেক শর্ত পরীক্ষা করা সম্ভব।
উদাহরণ:
int a = 10, b = 20;
if (a > b) {
System.out.println("a is greater");
} else {
System.out.println("b is greater");
}
2. Switch Case Statement
Switch case একটি বিশেষ ধরনের শর্তাধীন স্টেটমেন্ট যা একাধিক মানের মধ্যে তুলনা করার জন্য ব্যবহৃত হয়। সাধারণত এটি একটি নির্দিষ্ট মানের উপর ভিত্তি করে শর্ত নির্ধারণ করে এবং নির্দিষ্ট শাখায় চলে যায়। switch কেবল একটি একক মানের সাথে কাজ করে (যেমন: int, char, String ইত্যাদি)।
Syntax:
switch(expression) {
case value1:
// Code block if expression matches value1
break;
case value2:
// Code block if expression matches value2
break;
default:
// Code block if no case matches
}
বিশেষত্ব:
- একাধিক মানের মধ্যে তুলনা করতে ব্যবহৃত হয়।
- শুধু নির্দিষ্ট ধরনের ডেটা (int, char, String) সাপোর্ট করে।
breakব্যবহার করা না হলে পরবর্তীcaseগুলোও এক্সিকিউট হবে (fall-through behavior)।- কোডের মধ্যে সাপেক্ষে অনেক শাখা ব্যবহৃত হয় না, তাই কোড বেশি পরিষ্কার হয়।
উদাহরণ:
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Invalid day");
}
3. Ternary Operator
Ternary Operator একটি সংক্ষিপ্ত শর্তীয় অপারেটর যা একটি ছোট if-else স্টেটমেন্টের বিকল্প হিসেবে ব্যবহৃত হয়। এটি তিনটি অংশে বিভক্ত থাকে:
- শর্ত (condition)
- শর্ত সঠিক হলে ফলাফল (true case)
- শর্ত ভুল হলে ফলাফল (false case)
Syntax:
condition ? true_expression : false_expression;
বিশেষত্ব:
- ছোট এবং সংক্ষিপ্ত কোডে শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়।
- একাধিক শর্ত যাচাই করতে এটি ব্যবহৃত হতে পারে না (যেহেতু এটি শুধু একটি শর্তের জন্য কাজ করে)।
- কোডের মধ্যে এক্সপ্রেশন হিসেবে ব্যবহৃত হয়, সাধারণত ভেরিয়েবলের মান অ্যাসাইনমেন্টের জন্য।
উদাহরণ:
int a = 10, b = 20;
String result = (a > b) ? "a is greater" : "b is greater";
System.out.println(result);
পার্থক্য:
| বিষয় | If-else | Switch Case | Ternary Operator |
|---|---|---|---|
| সংজ্ঞা | শর্ত অনুযায়ী একাধিক কোড ব্লক কার্যকর করা। | একাধিক সম্ভাব্য মানের মধ্যে তুলনা করা। | সংক্ষিপ্তভাবে শর্ত পরীক্ষা করার জন্য ব্যবহার করা হয়। |
| শর্তের ধরণ | যেকোনো শর্ত (boolean expression)। | শুধুমাত্র একটি একক মানের তুলনা (int, char, String)। | একটি শর্ত (boolean expression)। |
| কোডের সংখ্যা | অনেক কোডের প্রয়োজন (যদি অনেক else if থাকে)। | কোড পরিষ্কার থাকে, তবে শর্তের সংখ্যা সীমিত। | খুব ছোট কোড এবং সহজ। |
| বিকল্প শর্ত | একাধিক শর্ত যুক্ত করা সম্ভব। | শুধুমাত্র একাধিক নির্দিষ্ট মানের জন্য কাজ করে। | শুধুমাত্র একটি শর্তের জন্য ব্যবহৃত হয়। |
| ব্যবহারযোগ্যতা | অনেক পরিস্থিতির মধ্যে ব্যবহারযোগ্য। | যখন তুলনা একাধিক মানের সঙ্গে হয়। | ছোট শর্তীয় সিদ্ধান্তে দ্রুত ফলাফল পেতে ব্যবহৃত হয়। |
- If-else স্টেটমেন্টগুলি সাধারণত জটিল শর্তের ক্ষেত্রে ব্যবহার হয় এবং যেকোনো ধরনের শর্ত পরীক্ষা করতে পারে।
- Switch case সাধারণত একটি মানের সাথে তুলনা করতে ব্যবহৃত হয় এবং কোড পরিষ্কার রাখে, কিন্তু এটি অনেক বেশি শর্ত পরীক্ষায় দক্ষ নয়।
- Ternary operator হল এক ধরনের সংক্ষিপ্ত if-else স্টেটমেন্ট যা একটি শর্তের উপর ভিত্তি করে একটি ফলাফল প্রদান করে, সাধারণত ভেরিয়েবল অ্যাসাইনমেন্টে ব্যবহৃত হয়।
এই তিনটি কন্ট্রোল স্টেটমেন্টের মধ্যে ব্যবহারের পছন্দ পরিস্থিতির উপর নির্ভর করে।
Read more