প্রোগ্রামিং করার সময় প্রোগ্রামের প্রয়োজনে আমাদের বিভিন্ন সময় বিভিন্ন অপারেটর নিয়ে কাজ করতে হয় । জাভা টিউটোরিয়ালের আজকের পর্বে আমরা আলোচনা করবো জাভাতে অপারেটর নিয়ে কিভাবে কাজ করতে হয় । আজকে যে টপিকগুলু নিয়ে আলোচনা করা হবেঃ
১ ) Operator ও Operand কি ? Unary Operator , Binary Operator এবং Ternary Operator কি ? জাভাতে কতো ধরনের অপারেটর আছে ?
২ ) Arithmetic Operator নিয়ে কাজ
৩ ) Relational Operator নিয়ে কাজ
৪ ) Assignment Operator নিয়ে কাজ
৫ ) Logical Operator নিয়ে কাজ
৬ ) Bitwise Operator নিয়ে কাজ
৭ ) Conditional Operator নিয়ে কাজ
৮ ) instanceof Operator নিয়ে কাজ
৯ ) Increment / Decrement Operator নিয়ে কাজ
Operator ও Operand কি ?
নাম থেকেই বুঝা যায় যে Operator মানে হচ্ছে, যে কোন কিছু অপারেট করে । প্রোগ্রামিং করার সময় আমাদের অনেক সময় অনেক ধরনের অপারেশন করতে হয় যার কারনে আমাদের অনেক ধরনের অপারেটর ব্যাবহার করতে হয় । অপারেশন গুলু বিভিন্ন ধরনের হতে পারে যেমন যোগ , বিয়োগ কিংবা গুন/ভাগ ইত্যাদি । অপারেটর গুলু সাধারণত এক্সপ্রেশনের মাধ্যমে কাজ করে । এক্সপ্রেশন হচ্ছে অনেক গুলু অপারেটর এবং অপারেন্ডের সমষ্টি যেটি কিনা ভেলু ধারন করতে পারে । ছোট একটি উদাহারন দিয়েই বুঝা যাকঃ
int value=x+y-z // x+y-z is an expression here int number= number2 + number3 // number2 and number3 are the operands and + is an operator
এই উদাহারনে আমরা দেখতে পাচ্ছি যে number2+number3 একটি এক্সপ্রেশন যেখানে number2 এবং number3 একেকটি অপারেন্ড এবং + একটি অপারেটর । একেই ভাবে বলা যায় যে অপারেটর এবং অপারেন্ড হচ্ছে এক্সপ্রেশনের ছোট অংশমাত্র ।
Unary অপারেটর
যেইসব অপারেটর শুধুমাত্র একটা অপারেন্ড নিয়ে কাজ করে সেইগুলুকে Unary অপারেটর বলা হয় । যেমন লজিকেল not অপারেটর ! , Increment অপারেটর ++ ইত্যাদি Unary অপারেটর । অর্থাৎ এরা শুধুমাত্র একটি অপারেন্ড নিয়ে কাজ করে । নিচে উদাহারন দিয়ে বুঝিয়ে দেয়া হয়েছে
public class UnaryOperator{ public static void main(String[] args){ boolean isTrue=true; boolean isFalse=!isTrue;// ! is an unary operator System.out.println(isFalse);//output false int x=0; int number= ++x ; // ++ is an unary operator System.out.println(number);//output 1 } }
Binary অপারেটর
যেইসব অপারেটর দুইটা অপারেন্ড নিয়ে কাজ করে সেইগুলুকে Binary অপারেটর বলা হয় । যেমন লজিকেল AND অপারেটর && , Division অপারেটর / ইত্যাদি Binary অপারেটর । অর্থাৎ এরা দুইটা অপারেন্ড নিয়ে কাজ করে । নিচে উদাহারন দিয়ে বুঝিয়ে দেয়া হয়েছে
public class BinaryOperator{ public static void main(String[] args){ boolean isTrue=true && false;// && is a binary operator float number=10/3 // / is a binary operator System.out.println(isTrue); //output false; System.out.println(number); //output 3.333; } }
Ternary অপারেটর
যেইসব অপারেটর তিনটি অপারেন্ড নিয়ে কাজ করে সেইগুলুকে Ternary অপারেটর বলা হয় । যেমন Additional অপারেটর + , Multiplication অপারেটর / ইত্যাদি Ternary অপারেটর । অর্থাৎ এরা তিনটি অপারেন্ড নিয়ে কাজ করে । নিচে উদাহারন দিয়ে বুঝিয়ে দেয়া হয়েছে
public class TernaryOperator{ public static void main(String[] args){ int value=10+20+30; // here + is a ternary operator System.out.println(value);//output 60 } }
Arithmetic Operator নিয়ে কাজ
Arithmetic অপারেটর সাধারণত Arithmetical operation এর জন্য ব্যাবহার করা হয় । Arithmetical operation বলতে যোগ , বিয়োগ কিংবা গুন/ভাগ কে বুঝানো হয় । জাভাতে সাধারণত ৫ ধরনের Arithmetic অপারেটর দেখা যায় যেগুলু হচ্ছে (Addition) +, (Subtraction) – , (Multiplication) * , (Division ) / , (Modulus) % । একটি প্রগ্রামের মাধ্যমে এইগুলুর ব্যাবহার তুলে ধরা হলো
public class ArithmeticOperators{ public static void main(String[] args){ int number=10; int number2=20; //additional operation System.out.println(number+number2);// output 30 // subtractional operation System.out.println(number2-number);// output 10 // multiplicational operation System.out.println(number*number2);// output 200 // divisional operation System.out.println(number2/number);// output 2 // modulus operation System.out.println(number2%number);// output remainder 0 } }
Relational / Comparison Operator নিয়ে কাজ
Relational অপারেটর সাধারণত দুইটা অপারেন্ড এর মধ্যে তুলনা করার জন্য ব্যাবহার করা হয় । যেমন দুইটা ভেরিয়েবলের মধ্যে তুলনা করা কিংবা একটা থেকে আরেকটা ছোট বা বড়ো কিংবা সমান এই ধরনের কাজের জন্য Relational অপারেটর ব্যাবহার করা হয় । জাভাতে সাধারণত ৬ ধরনের Relational / Comparison অপারেটর দেখা যায় যেগুলু হচ্ছে (Equality) ==, (less than ) < , (greater than) > , (not equal) != , (less than equal) <= এবং (greater than equal) >= । একটি প্রগ্রামের মাধ্যমে এইগুলুর ব্যাবহার তুলে ধরা হলো
public class ComparisonOperator{ public static void main(String args[]) { int number = 10; int number2 = 20; System.out.println("number == number2 = " + (number == number2) ); System.out.println("number != number2 = " + (number != number2) ); System.out.println("number > number2 = " + (number > number2) ); System.out.println("number < number2 = " + (number < number2) ); System.out.println("number2 >= number = " + (number2 >= number ) ); System.out.println("number2 <= number = " + (number2 <= number ) ); } }
আউটপুট
//output number == number2 = false number != number2 = true number > number2 = false number < number2 = true number2 >= number = true number2 <= number = false
Assignment Operator নিয়ে কাজ
Assignment Operator সাধারণত কোন ভেরিয়েবলে কোন ভেলু Assign করার জন্য ব্যাবহার করা হয় । বিভিন্ন ধরনের Assignment Operator গুলুর ব্যাবহার নিচে একটা ছোট প্রগ্রামের মাধ্যমে দেখানো হয়েছে
public class AssignmentOperator{ public static void main(String args[]) { int number = 10; int number2 = 20; int number3 = 0; number3 = number + number2; System.out.println("number3 = number + number2 = " + number3 ); number3 += number ; System.out.println("number3 += number = " + number3 ); number3 -= number ; System.out.println("number3 -= number = " + number3 ); number3 *= number ; System.out.println("number3 *= number = " + number3 ); number = 10; number3 = 15; number3 /= number ; System.out.println("number3 /= number = " + number3 ); number = 10; number3 = 15; number3 %= number ; System.out.println("number3 %= number = " + number3); number3 <<= 2 ; System.out.println("number3 <<= 2 = " + number3); number3 >>= 2 ; System.out.println("number3 >>= 2 = " + number3); number3 >>= 2 ; System.out.println("number3 >>= 2 = " + number3 ); number3 &= number ; System.out.println("number3 &= number = " + number3 ); number3 ^= number ; System.out.println("number3 ^= number = " + number3); number3 |= number ; System.out.println("number3|= number = " + number3); } }
আউটপুট
number3 = number + number2 = 30 number3 += number = 40 number3 -= number = 30 number3 *= number = 300 number3 /= number = 1 number3 %= number = 5 number3 <<= 2 = 20 number3 >>= 2 = 5 number3 >>= 2 = 1 number3 &= number = 0 number3 ^= number = 10 number3 |= number = 10
উল্লেখ্য যে , Assignment অপারেটরের ক্ষেত্রে var+=value মানে var=var+value, var-=value মানে var=var-value কিংবা var/=value মানে var=var/value ঠিক একই ভাবে বাকিগুলু কাজ করে ।
Logical Operator নিয়ে কাজ
Logical অপারেটর সাধারণত Logical True অথবা False নিয়ে কাজ করে । জাভাতে ৩ ধরনের Logical অপারেটর আছে যথাক্রমে – Logical AND ( && ) , Logical OR ( || ) এবং Logical NOT (!)। True && True হলে ফলাফল হবে True , True || False হলে ফলাফল হবে True এবং True && False হলে ফলাফল হবে False । ছোট প্রগ্রামের মাধ্যমে নিচে ব্যাখ্যা করা হয়েছে
public class LogicalOperator{ public static void main(String args[]) { boolean isTrue = true; boolean isFalse = false; System.out.println("isTrue && isFalse = " + (isTrue&&isFalse)); System.out.println("isTrue || isFalse = " + (isTrue||isFalse) ); System.out.println("!(isTrue && isFalse) = " + !(isTrue && isFalse)); } }
আউটপুট
isTrue && isFalse = false isTrue || isFalse = true !(isTrue && isFalse ) = true
Bitwise Operator নিয়ে কাজ
Bitwise অপারেটর সাধারণত Binary অপারেশনের জন্য ব্যাবহার করা হয় । এই অপারেটর গুলুকে int , long ,short,char , byte ইত্যাদি ডাটা টাইপের ক্ষেত্রে ব্যাবহার করা যায় । Bitwise অপারেটর bit এর উপর ভিত্তি করে কাজ করে । নিচে প্রোগ্রামের মাধ্যমে উদাহারন দিয়ে বুঝানো হয়েছে
public class BitwiseOperator{ public static void main(String args[]) { int number = 60; int number2 = 13; int number3 = 0; number3 = number & number2; /* bitwise AND */ System.out.println("number & number2 = " + number3 ); number3 = number | number2; /* bitwise OR */ System.out.println("number | number2 = " + number3 ); number3 = number ^ number2; /* bitwise XOR */ System.out.println("number ^ number2 = " + number3 ); number3 = ~number; /* bitwise compliment flipping bits */ System.out.println("~number = " + number3 ); number3 = number << 2; /* left shift */ System.out.println("number << 2 = " + number3 ); number3 = number >> 2; /* right shift */ System.out.println("number >> 2 = " + number3 ); number3 = number >>> 2; /* zero fill right shift */ System.out.println("number >>> 2 = " + number3 ); } }
আউটপুট
number & number2 = 12 number | number2 = 61 number ^ number2 = 49 ~number = -61 number << 2 = 240 number >> 2 = 15 number >>> 2 = 15
Conditional Operator নিয়ে কাজ
জাভাতে এক ধরনের শর্টহ্যান্ড Ternary অপারেটর আছে যার সিনট্যাক্স হচ্ছে ( condition ) ? statement : statement এবং একে সাধারণত Conditional অপারেটর বলা হয় । এই অপারেটরের মাধ্যমে শর্টকাট ভাবে IF-ELSE Condition এর কাজ করা যায় যেমন
public class ConditionalOperator{ public static void main(String args[]) { boolean isTrue=true; String output=(isTrue==true)? "True":"False";// it means if isTrue==true then show "True" otherwise show "False" System.out.println(output); // output is "True" } }
instanceof Operator নিয়ে কাজ
instanceof অপারেটর দিয়ে সাধারণত কোন Reference ভেরিয়েবল কোন ক্লাসের Instance কিনা সেটা যাচাই করার জন্য ব্যাবহার করা হয় । এর সিনট্যাক্স হচ্ছে ( reference variable ) instanceof (class/interface type) । নিচে উদাহারন দিয়ে বুঝিয়ে দেয়া হয়েছে
public class InstanceOf{ public static void main(String args[]) { Integer myInt=new Integer(); boolean isInstance=myInt instanceof Integer; // determining isInstance is a reference variable of new Integer() instance System.out.println(isInstance);// output true } }
উপরের প্রোগ্রামে myInt একটা Reference ভেরিয়েবল যা কিনা Integer ক্লাসের অবজেক্টকে পয়েন্ট করছে ।
Increment / Decrement Operator নিয়ে কাজ
Increment অপারেটর সাধারণত কোন ভেরিয়েবলের মান নির্দিষ্ট হারে বাড়ানোর জন্য ব্যাবহার করা হয় । অন্যদিকে Decrement অপারেটর সাধারণত কোন ভেরিয়েবলের মান নির্দিষ্ট হারে কমানোর জন্য ব্যাবহার করা হয় । Increment দুই ধরনের হয় একটা পোষ্ট Increment আরেকটা প্রি Increment অর্থাৎ var++ এবং ++var । আবার Decrement দুই ধরনের হয় একটা পোষ্ট Decrement আরেকটা প্রি Decrement অর্থাৎ var– এবং –var । পোষ্ট Increment এর ক্ষেত্রে প্রথমে Original ভেলু ইউজ করার পর Increment হয় অন্যদিকে প্রি Increment এর ক্ষেত্রে প্রথমে Increment হয় তারপর ভেলু দেখায় । পোষ্ট Decrement এর ক্ষেত্রে প্রথমে Original ভেলু ইউজ করার পর Decrement হয় অন্যদিকে প্রি Decrement এর ক্ষেত্রে প্রথমে Decrement হয় তারপর ভেলু দেখায় । নিচে একটা ছোট প্রোগ্রামের মাধ্যমে তুলে ধরা হয়েছে
public class IncDec{ public static void main(String[] args){ int number=0; int value=5; //post increment System.out.println("number++ is : " + number++);//output 0; //pre increment System.out.println("++number is : " + ++number);//output 1; //post decrement System.out.println("value-- is : " + value--);//output 5; //pre decrement System.out.println("--value is : " + --value);//output 4; } }
আজকে এই পর্যন্তই । ভালো লাগলে শেয়ার করবেন