Fri. Nov 16th, 2018

জাভাতে Operator নিয়ে কিভাবে কাজ করতে হয় ?

প্রোগ্রামিং করার সময় প্রোগ্রামের প্রয়োজনে আমাদের বিভিন্ন সময় বিভিন্ন অপারেটর নিয়ে কাজ করতে হয় । জাভা টিউটোরিয়ালের আজকের পর্বে আমরা আলোচনা করবো জাভাতে অপারেটর নিয়ে কিভাবে কাজ করতে হয় । আজকে যে টপিকগুলু নিয়ে আলোচনা করা হবেঃ

১ ) 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;
   }
}

আজকে এই পর্যন্তই । ভালো লাগলে শেয়ার করবেন

Comments

comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: