Kotlin-এ when এক্সপ্রেশন হল Java-এর switch স্টেটমেন্টের একটি আরও শক্তিশালী এবং আরও ফ্লেক্সিবল বিকল্প। এটি কন্ডিশনাল লজিক বা শর্ত ভিত্তিক সিদ্ধান্ত গ্রহণে ব্যবহার করা হয় এবং এটি অনেক বেশি রিডেবল ও সংক্ষিপ্ত।
when এক্সপ্রেশনের সাধারণ কাঠামো:
when (expression) {
value1 -> // code block
value2 -> // code block
else -> // default code block
}
expression: এটি একটি ভেরিয়েবল বা সরাসরি একটি এক্সপ্রেশন হতে পারে।value1,value2: বিভিন্ন মান যাexpressionএর সাথে তুলনা করা হয়।else: এটি ডিফল্ট ব্লক হিসেবে কাজ করে। যদি কোনো মান মেলে না, তাহলেelseব্লক এক্সিকিউট হয় (এটিswitchএরdefaultএর সমান)।
উদাহরণ ১: সাধারণ when এক্সপ্রেশন
fun main() {
val day = 3
val dayName = when (day) {
1 -> "Sunday"
2 -> "Monday"
3 -> "Tuesday"
4 -> "Wednesday"
5 -> "Thursday"
6 -> "Friday"
7 -> "Saturday"
else -> "Invalid Day"
}
println(dayName) // আউটপুট: Tuesday
}
- এখানে,
dayভেরিয়েবলের মানের উপর ভিত্তি করে একটি দিন নির্ধারণ করা হচ্ছে। যদি কোনো মান না মেলে, তাহলেelseব্লকে"Invalid Day"রিটার্ন করবে।
উদাহরণ ২: একাধিক মান পরীক্ষা করা
whenএক্সপ্রেশন একাধিক মান একসাথে চেক করতে পারে, যেমন:
fun main() {
val number = 7
when (number) {
1, 3, 5, 7, 9 -> println("Odd Number")
2, 4, 6, 8, 10 -> println("Even Number")
else -> println("Not in the range")
}
}
আউটপুট: Odd Number
এখানে number ভেরিয়েবলের মান একাধিক মানের (১, ৩, ৫, ৭, ৯) মধ্যে যদি মিলে যায়, তাহলে "Odd Number" প্রিন্ট করবে।
উদাহরণ ৩: রেঞ্জ বা ইন (in) অপারেটর ব্যবহার করে
whenএক্সপ্রেশন রেঞ্জ চেক করার জন্যও ব্যবহার করা যায়:
fun main() {
val score = 85
when (score) {
in 90..100 -> println("Excellent")
in 75..89 -> println("Good")
in 60..74 -> println("Pass")
else -> println("Fail")
}
}
আউটপুট: Good
এখানে, score এর মান যদি ৭৫ থেকে ৮৯ এর মধ্যে থাকে, তাহলে "Good" প্রিন্ট করবে।
উদাহরণ ৪: কন্ডিশন বা এক্সপ্রেশন ব্যবহার করা
whenশুধু মান বা রেঞ্জ নয়, সরাসরি কন্ডিশন বা এক্সপ্রেশনও ব্যবহার করতে পারে:
fun main() {
val x = -5
when {
x > 0 -> println("Positive Number")
x < 0 -> println("Negative Number")
else -> println("Zero")
}
}
আউটপুট: Negative Number
এখানে, সরাসরি কন্ডিশনাল চেক করা হচ্ছে এবং কন্ডিশন অনুযায়ী আউটপুট দেখানো হচ্ছে।
when এক্সপ্রেশনের সুবিধা:
শক্তিশালী এবং ফ্লেক্সিবল: এটি শুধুমাত্র মানের সাথে তুলনা করে না, এক্সপ্রেশন এবং কন্ডিশনও চেক করতে পারে।
সাধারণ এবং রিডেবল: when এর ব্যবহার কোডকে আরও সংক্ষিপ্ত এবং রিডেবল করে তোলে।
রিটার্ন ভ্যালু: when একটি এক্সপ্রেশন হিসেবে কাজ করতে পারে, যা সরাসরি ভ্যালু রিটার্ন করতে পারে। এটি একটি ফাংশন বা ভেরিয়েবলের মধ্যে রিটার্ন ভ্যালু স্টোর করা যায়।
উদাহরণ:
val result = when (val grade = 85) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
else -> "F"
}
println(result) // আউটপুট: B
উপসংহার
Kotlin-এর when এক্সপ্রেশন হল একটি অত্যন্ত শক্তিশালী কন্ডিশনাল স্টেটমেন্ট যা Java-এর switch স্টেটমেন্টের থেকে আরও বেশি ফ্লেক্সিবল এবং সহজবোধ্য। এটি একাধিক মান, রেঞ্জ, এবং কন্ডিশন এক্সপ্রেশনের উপর ভিত্তি করে কাজ করতে পারে, যা কোডকে আরও সংক্ষিপ্ত এবং পরিষ্কার করে। যদি আপনি কোডের ফ্লেক্সিবিলিটি ও রিডেবিলিটি বাড়াতে চান, তাহলে when এক্সপ্রেশন ব্যবহার করার পরামর্শ দেওয়া হয়।