Lesson ৬ মিনিট পড়া

অপারেটর এবং এক্সপ্রেশন (Operators & Expressions)

প্রতিটি সিদ্ধান্তের পেছনের সাধারণ গণিত এবং যুক্তি

অপারেটর — জাভার টুলবক্স (Operators — Java's Toolbox)

অপারেটর (Operators) হলো আপনার কোডের ক্রিয়াপদ (verbs)। ভ্যারিয়েবলগুলো ডেটাকে নিজের ভেতরে ধরে রাখে, কিন্তু এই ডেটা নিয়ে কী কাজ হবে তা ঠিক করে দেয় অপারেটরগুলো — যোগ করা, মেলানো বা তুলনা করা, একত্র করা, নাকি উল্টে দেওয়া ইত্যাদি। এদেরকে ক্যালকুলেটরের বোতামের মতো ভাবতে পারেন, তবে এগুলো ক্যালকুলেটরের চেয়ে অনেক বেশি শক্তিশালী।

জাভাতে কয়েক ধরণের অপারেটর পরিবার রয়েছে:

  • অ্যারিথমেটিক (Arithmetic) বা গাণিতিক — গণিতের কাজ: + - * / %
  • রিলেশনাল (Relational) বা সম্পর্কযুক্ত — তুলনা করার কাজ: == != < > <= >=
  • লজিক্যাল (Logical) বা যৌক্তিক — সত্য অথবা মিথ্যা একত্র করার কাজ: && || !
  • অ্যাসাইনমেন্ট (Assignment) বা নির্দিষ্ট করা — ফলাফল সংরক্ষণ করার কাজ: = += -= *=
  • ইনক্রিমেন্ট/ডিক্রিমেন্ট (Increment/Decrement) বা মান বৃদ্ধি ও হ্রাস করা — চটজলদি +১ বা -১ যোগ বা বিয়োগ করা: ++ --

গাণিতিক হিসাব এবং ইনটিজার ডিভিশনের ফাঁকি (Arithmetic & the Sneaky Integer Division)

public class Main {
public static void main(String[] args) {
int a = 17;
int b = 5;
System.out.println("Add: " + (a + b)); // 22
System.out.println("Subtract: " + (a - b)); // 12
System.out.println("Multiply: " + (a * b)); // 85
System.out.println("Divide: " + (a / b)); // 3, NOT 3.4!
System.out.println("Remainder: " + (a % b)); // 2
// To get the real decimal answer, make one side a double
System.out.println("Real divide: " + ((double) a / b)); // 3.4
}
}
Output
Add: 22
Subtract: 12
Multiply: 85
Divide: 3
Remainder: 2
Real divide: 3.4

রিলেশনাল এবং লজিক্যাল অপারেটর (Relational & Logical Operators)

রিলেশনাল বা সম্পর্কযুক্ত অপারেটরগুলো হ্যাঁ-অথবা-না ভিত্তিক প্রশ্ন করে এবং আপনাকে true (হ্যাঁ) অথবা false (না) উত্তর হিসেবে দেয়। যেমন, "৫ কি ৩ এর চেয়ে বড়?" → উত্তর হলো true

লজিক্যাল বা যৌক্তিক অপারেটরগুলো এই উত্তরগুলোকে একত্র করে বা মেলায় (combine):

  • && (এবং/AND) — এক্ষেত্রে উভয় পাশকেই সত্য (true) হতে হবে। এটি অনেকটা কোনো জায়গায় ঢোকার জন্য অবশ্যই টিকিট এবং (AND) আইডি — দুটিই সাথে থাকার মতো ব্যাপার।
  • || (অথবা/OR) — এক্ষেত্রে অন্তত যেকোনো এক পাশকে সত্য (true) হতে হবে। এটি অনেকটা এমন কোনো দোকানের মতো, যেখানে নগদ টাকা অথবা (OR) বিকাশ — যেকোনো একটি গ্রহণ করা হয়।
  • ! (না/NOT) — এটি সত্যকে (true) মিথ্যা (false) করে দেয় এবং মিথ্যাকে সত্য করে দেয়। এটি অনেকটা "উল্টো করা বা বিপরীত কাজ করার" সুইচের মতো।

তুলনা করা ও যুক্তির ব্যবহার (Comparisons & Logic in Action)

public class Main {
public static void main(String[] args) {
int age = 15;
boolean hasPermission = true;
// Relational operators
System.out.println("Is teenager? " + (age >= 13 && age <= 19));
System.out.println("Is adult? " + (age >= 18));
// Logical operators
boolean canWatch = age >= 13 || hasPermission;
System.out.println("Can watch PG-13? " + canWatch);
// NOT operator
boolean isSleeping = false;
System.out.println("Is awake? " + !isSleeping);
// Combining multiple conditions
boolean canDrive = age >= 16 && hasPermission && !isSleeping;
System.out.println("Can drive? " + canDrive);
}
}
Output
Is teenager? true
Is adult? false
Can watch PG-13? true
Is awake? true
Can drive? false

টারনারি (Ternary) অপারেটর এবং ইনক্রিমেন্ট/ডিক্রিমেন্ট

public class Main {
public static void main(String[] args) {
// Ternary: condition ? valueIfTrue : valueIfFalse
int score = 85;
String result = score >= 60 ? "Pass" : "Fail";
System.out.println("Result: " + result);
// It's a one-line if/else!
int temp = 30;
String weather = temp > 25 ? "Hot" : "Cool";
System.out.println("Weather: " + weather);
// Increment & Decrement
int lives = 3;
System.out.println("Lives: " + lives);
lives--; // lost a life
System.out.println("After hit: " + lives);
lives++; // found a 1-up!
System.out.println("Found 1-up: " + lives);
// Pre vs Post increment
int x = 5;
System.out.println("Post: " + x++); // prints 5, THEN adds 1
System.out.println("Now x is: " + x); // 6
System.out.println("Pre: " + ++x); // adds 1 FIRST, then prints 7
}
}
Output
Result: Pass
Weather: Hot
Lives: 3
After hit: 2
Found 1-up: 3
Post: 5
Now x is: 6
Pre: 7
Note: সবসময় == এবং = এর মধ্যকার পার্থক্যটি খেয়াল রাখবেন! একটি মাত্র = এর অর্থ হলো "এই জিনিসটিকে খালি বাক্সে রাখো" বা অ্যাসাইন (assign) করো। আর জোড়া বা দুটি == এর অর্থ হলো "এই দুটি জিনিস কি একে অপরের সমান?" এটি যাচাই বা চেক করা। এই দুটির মধ্যে গুলিয়ে ফেলা নতুনদের অন্যতম সাধারণ একটি ভুল বা বাগ (bug)। আর হ্যাঁ, মনে রাখবেন: স্ট্রিংয়ের (Strings) ক্ষেত্রে তুলনা করার জন্য সবসময় == এর বদলে .equals() ব্যবহার করবেন।
চ্যালেঞ্জ

ছোট কুইজ

জাভাতে 17 / 5 এর ফলাফল কী হবে (যেখানে দুটোর মানই int)?
Variables & Data TypesStrings