Lesson ৬ মিনিট পড়া

কন্ডিশনাল বা শর্ত (Conditionals)

আপনার কোডকে সিদ্ধান্ত নেওয়া শেখানো

If/Else — রাস্তার মোড় (If/Else — The Fork in the Road)

কল্পনা করুন আপনি হাঁটছেন এবং পথটি দুদিকে বেঁকে গেছে। আপনি খেয়াল করে দেখলেন: "বৃষ্টি কি হচ্ছে?" যদি হ্যাঁ হয়, তবে আপনি ছাউনি দেওয়া পথ দিয়ে যাবেন। আর যদি না হয়, তবে সুন্দর দৃশ্য দেখতে দেখতে খোলা পথ দিয়ে যাবেন। জাভাতে if/else ঠিক এই কাজটিই করে থাকে।

ব্র্যাকেটের ভেতরের শর্তটিকে অবশ্যই একটি বুলিয়ান এক্সপ্রেশন (boolean expression) হতে হবে — অর্থাৎ এর ফলাফল হিসেবে true (সত্য) বা false (মিথ্যা) আসতে হবে। জাভা এটি যাচাই করে এবং যেকোনো একটি পথ বেছে নেয়, আর অন্যটিকে পুরোপুরি বাতিল করে দেয়।

আপনার কাছে যদি দুটোর বেশি অপশন বা বিকল্প থাকে, তবে আপনি else if ব্যবহার করে সেগুলোকে একসাথে যুক্ত করতে পারেন — ঠিক যেমন দূরত্বের ওপর ভিত্তি করে হাঁটা, সাইকেল চালানো বা বাসে ওঠার মধ্যে সিদ্ধান্ত নেওয়ার মতো।

If / Else If / Else

public class Main {
public static void main(String[] args) {
int temperature = 35;
if (temperature >= 40) {
System.out.println("Stay inside! It's dangerously hot.");
} else if (temperature >= 30) {
System.out.println("It's hot — grab some sunscreen.");
} else if (temperature >= 20) {
System.out.println("Nice weather! Perfect for a walk.");
} else if (temperature >= 10) {
System.out.println("A bit chilly. Wear a jacket.");
} else {
System.out.println("Brrr! Bundle up.");
}
// Nested if
int age = 15;
boolean hasTicket = true;
if (age >= 12) {
if (hasTicket) {
System.out.println("Welcome to the movie!");
} else {
System.out.println("You need a ticket first.");
}
} else {
System.out.println("Sorry, you must be 12 or older.");
}
}
}
Output
It's hot — grab some sunscreen.
Welcome to the movie!

সুইচ — টিভি রিমোট (Switch — The TV Remote)

একটি switch স্টেটমেন্টকে অনেকটা টিভি রিমোটের (TV Remote) সাথে তুলনা করা যায়। আপনি এর একটি বোতাম চাপেন (বা একটি মান দেন), এবং সেটি কোন চ্যানেলের সাথে বা কাজের সাথে মেলে তা চেক করে দেখে। যখন আপনি কোনো একটি নির্দিষ্ট ভ্যারিয়েবলকে অনেকগুলো নির্দিষ্ট মানের সাথে মিলিয়ে দেখতে চান, তখন ডজনখানেক else if ব্লক লেখার চেয়ে এটি ব্যবহার করা অনেক বেশি পরিচ্ছন্ন ও সহজ।

কিছু গুরুত্বপূর্ণ নিয়ম:

  • প্রতিটি case এর শেষে অবশ্যই একটি break; থাকতে হবে, নয়তো জাভা নিচের দিকে নেমে গিয়ে বা ফল-থ্রু (fall through) করে পরের কেসটিও রান করে ফেলবে।
  • যখন অন্য কোনো কেসই মেলে সমাধানে না, তখন default কেসটি রান করে — অনেকটা রিমোটে ভুল বাটন চাপলে (invalid selection) যেমন কিছুই হয় না।
  • switch শুধুমাত্র int, char, String, এবং এনুমের (enum) সাথে কাজ করে (কিন্তু double বা boolean এর সাথে নয়)।

সুইচ (Switch) স্টেটমেন্ট

public class Main {
public static void main(String[] args) {
String day = "Wednesday";
switch (day) {
case "Monday":
System.out.println("Start of the work week.");
break;
case "Wednesday":
System.out.println("Halfway there! Hump day.");
break;
case "Friday":
System.out.println("TGIF! Weekend is near.");
break;
case "Saturday":
case "Sunday":
System.out.println("Weekend vibes!");
break;
default:
System.out.println("Just another day.");
break;
}
// Ternary — the one-liner if/else
int score = 72;
String grade = score >= 90 ? "A" :
score >= 80 ? "B" :
score >= 70 ? "C" : "F";
System.out.println("Grade: " + grade);
}
}
Output
Halfway there! Hump day.
Grade: C

শর্তের ভেতর স্ট্রিং মেলানো (Comparing Strings in Conditions)

public class Main {
public static void main(String[] args) {
String password = "secret123";
String input = new String("secret123");
// WRONG way — might not work!
if (input == password) {
System.out.println("== says: Match!");
} else {
System.out.println("== says: No match!");
}
// RIGHT way — always works
if (input.equals(password)) {
System.out.println(".equals() says: Match!");
}
// Case-insensitive comparison
String userInput = "ADMIN";
if (userInput.equalsIgnoreCase("admin")) {
System.out.println("Welcome, admin!");
}
}
}
Output
== says: No match!
.equals() says: Match!
Welcome, admin!
Note: আপনার সুইচ (switch) স্টেটমেন্টে break দিতে ভুলে গেছেন? জাভা তখন মিলে যাওয়া কেসটির ঠিক নিচের সবগুলো কেস বা "ফল-থ্রু (fall through)" করে এক্সিকিউট করা শুরু করবে। কোনো কোনো ক্ষেত্রে ইচ্ছা করেই এভাবে কাজ করা হয় (যেমন শনি ও রবিবার একসাথে মেলানো), তবে বেশিরভাগ ক্ষেত্রেই এটি একটি বাগ বা ভুল। যদি কখনো সন্দেহ হয়, চোখ বুঝে সবসময় break যোগ করে দেবেন।
চ্যালেঞ্জ

ছোট কুইজ

কোনো সুইচ (switch) কেসে 'break' দিতে ভুলে গেলে কী হবে?
StringsLoops