အခြေခံ ကွန်ပျူတာပရိုဂရမ် ရေးသားနည်း - Operators

Operators

ကွန်ပျူတာကို လူတွေ တီထွင်ခဲ့ကြတဲ့ အဓိက အကြောင်းရင်းတစ်ခုကတော့ လူတွေအတွက် ကူညီ တွက်ချက် ခိုင်းစေဖို့ အတွက်ပဲ ဖြစ်တယ်။ ကွန်ပျူတာရဲ့ ဖခင်တစ်ဉီးဖြစ်တဲ့ Charles Babbage ဟာ The Analytical Engine ရဲ့ အကူအညီနဲ့ သင်္ချာဖော်မြူလာတွေကို တွက်ချက်ခဲ့တယ်။


သင်္ချာမှာ အရေးပါတဲ့ ပေါင်းနုတ်မြောက်စားလို ညီမျှခြင်းလို အခြေခံကျတဲ့ operation တွေကို Programming Language တိုင်းမှာ ထည့်သွင်းထားလေ့ရှိတယ်။

Operator represents action

Java မှာ Operator တွေကို အလုပ် task တစ်ခုကို စနစ်တကျခိုင်းစေဖို့အတွက် အသုံးပြုတယ်။ 


ဉပမာ int year = 2021; ဆိုတဲ့ expression မှာ ပါတဲ့ =(equal sign) ကို assignment operator လို့ ခေါ်တယ်။ Integer တန်ဘိုး 2021 ကို year ဆိုတဲ့ variable ထဲကို ထည့်သိမ်းခိုင်းဖို့အတွက် အသုံးပြုတယ်။


အလားတူ ပေါင်း နုတ် မြောက် စား တွေအတွက် Arithmetic Operator တွေကို အသုံးပြုပြီး ခိုင်းစေနိုင်သလို Logical Operator အသုံးပြုပြီး number1 နဲ့ number2 ဆိုတဲ့ variable နှစ်ခုဟာ တူညီသလား စသဖြင့်လည်း operate လုပ်ခိုင်းလို့ရတယ်။


Java မှာ အခြေခံကျပြီး အသုံးများတဲ့ အောက်ဖော်ပြပါ operator တွေကို ထည့်သွင်းပေးထားတယ်။

 

  1. Basic Arithmetic Operators

  2. Assignment Operators

  3. Auto-increment and Auto-decrement Operators

  4. Logical Operators

  5. Comparison (Relational) Operators

  6. Bitwise Operators

  7. Ternary Operators

Basic Arithmetic Operators

သင်္ချာမှာ ပေါင်းနုတ်မြောက်စားဟာ မပါလို့မပြီးသလို နိစ္စဓူဝ စာရင်းအင်း နဲ့ လက်တွေ့ဘဝမှာလည်း ပေါင်းနုတ်မြောက်စားဟာ အသုံးများတယ်။ 


Arithmetic Operators အသေးစိတ်အချက်အလက်ကို အောက်ကဇယားမှာ ကြည့်ရှုနိုင်ပါတယ်။


Operator

Description

+

Additive operator (also used for String concatenation)

-

Subtraction operator

*

Multiplication operator

/

Division operator

%

Remainder operator

Example Of Arithmetic Operators

public class ArithmeticOperators {

   public static void main(String args[]) {

      int num1 = 1500; 

      int num2 = 1000;

      System.out.println("num1 + num2: " + (num1 + num2) );

      System.out.println("num1 - num2: " + (num1 - num2) );

      System.out.println("num1 * num2: " + (num1 * num2) ); 

      System.out.println("num1 / num2: " + (num1 / num2) );

      System.out.println("num1 % num2: " + (num1 % num2) );

   }

}

Assignment Operators

Variable တစ်ခုထဲကို value တစ်ခုခု ထည့်သွင်းဖို့ assign လုပ်ဖို့ အတွက် အသုံးပြုပါတယ်။ 


=, +=, -=, * =  /=, %= ဟာ Java ရဲ့ assignment operators တွေ ဖြစ်ပါတယ်။

Example Of Assignment Operators

public class AssignmentOperators {


   public static void main(String args[]) {

      int num1 = 100;

      int num2 = 200;


      num2 = num1;

      System.out.println(" = Output: " + num2);


      num2 += num1;

      System.out.println(" += Output: " + num2);


      num2 -= num1;

      System.out.println(" -= Output: " + num2);

      

      num2 *= num1;

      System.out.println(" *= Output: " + num2);

         

      num2 /= num1;

      System.out.println(" /= Output: " + num2);

        

      num2 %= num1;

      System.out.println(" %= Output: " + num2);

   }

}

Auto-Increment And Auto-Decrement Operators

Auto-Increment Operator is ++

Auto-Decrement Operator is --

Example Of Auto-Increment And Auto-Decrement Operators

public class AutoOperators {

   public static void main(String args[]){

      int num1=100;

      int num2=200;

      num1++;

      num2--;

      System.out.println("num1++ is: "+num1);

      System.out.println("num2-- is: "+num2);

   }

}

Logical Operators

Logical Operators တွေကို Binary variables နဲ့ အတူ အသုံးပြုလေ့ရှိတယ်။ &&, ||, ! တွေဟာ Java ရဲ့ logical operators တွေ ဖြစ်ပါတယ်။


b1 နဲ့ b2 ဆိုတဲ့ boolean variable နှစ်ခု ရှိတယ် ဆိုကြပါစို့။ 


(b1&&b2) ဆိုတဲ့ expression ဟာ b1 နဲ့ b2 နှစ်ခုစလုံး true ဖြစ်မှ true ကို return ပြန်တယ်။ ဒါမှမဟုတ်ရင် false ကို return ပြန်တယ်။


(b1||b2) ဆိုတဲ့ expression ဟာ b1 နဲ့ b2 နှစ်ခုစလုံး false ဖြစ်မှ false ကို return ပြန်တယ်။ ဒါမှမဟုတ်ရင် true ကို return ပြန်တယ်။


(!b1) ဆိုတဲ့ expression ဟာ b1 false ဖြစ်မှ true ကို return ပြန်တယ်။ ဒါမှမဟုတ်ရင် false ကို return ပြန်တယ်။

Example Of Logical Operators

public class LogicalOperators {

   public static void main(String args[]) {

      boolean b1 = true;

      boolean b2 = false;

      System.out.println("b1 && b2: " + (b1&&b2));

      System.out.println("b1 || b2: " + (b1||b2));

      System.out.println("!(b1 && b2): " + !(b1&&b2));

   }

}

Comparison (Relational) Operators

Comparison operator တွေကို conditionals တွေနဲ့ loops တွေမှာ အသုံးများတယ်။ 


Relational  Operator အသေးစိတ်အချက်အလက်ကို အောက်ကဇယားမှာ ကြည့်ရှုနိုင်ပါတယ်။


Operator

Description

==

Equal to

!=

Not equal to

>

Greater than

>=

Greater than or equal to

<

Less than

<=

Less than or equal to

Example Of Comparison(Relational) Operators

public class RelationalOperators {


   public static void main(String args[]) {

      int num1 = 10;

      int num2 = 50;


      if (num1==num2) {

System.out.println("num1 and num2 are equal");

      }

      else{

System.out.println("num1 and num2 are not equal");

      }


      if( num1 != num2 ){

System.out.println("num1 and num2 are not equal");

      }

      else{

System.out.println("num1 and num2 are equal");

      }


      if( num1 > num2 ){

System.out.println("num1 is greater than num2");

      }

      else{

System.out.println("num1 is not greater than num2");

      }


      if( num1 >= num2 ){

System.out.println("num1 is greater than or equal to num2");

      }

      else{

System.out.println("num1 is less than num2");

      }


      if( num1 < num2 ){

System.out.println("num1 is less than num2");

      }

      else{

System.out.println("num1 is not less than num2");

      }


      if( num1 <= num2){

System.out.println("num1 is less than or equal to num2");

      }

      else{

System.out.println("num1 is greater than num2");

      }

   }

}

Bitwise Operators

&, |, ^, ~, <<, >> operators တွေဟာ Java ရဲ့ Bitwise Operators တွေ ဖြစ်ပါတယ်။ Bitwise operator တွေကို bit to bit နှိုင်းယှဉ်ပြီး အသုံးပြုလေ့ ရှိတယ်။ 


num1 = 11; /* equal to 00001011*/

num2 = 22; /* equal to 00010110 */


num1 ရဲ့ value 11 ကို binary digit ပြောင်းရင် 00001011 ရပါတယ်။ num2 ရဲ့ value 22 ကို binary digit ပြောင်းရင် 00010110 ရပါတယ်။ 


(num1 & num2) ဆိုတဲ့ expression ဟာ num1 နဲ့ num2 နှစ်ခုစလုံး equal ဖြစ်မှ 1 ကို return ပြန်တယ်။ ဒါမှမဟုတ်ရင် 0 ကို return ပြန်တယ်။ 


(num1 | num2) ဆိုတဲ့ expression ဟာ num1 နဲ့ num2 နှစ်ခုထဲက တစ်ခုက 1 ဖြစ်ရင် 1 ကို return ပြန်တယ်။ ဒါမှမဟုတ်ရင် 0 ကို return ပြန်တယ်။ 


(num1 ^ num2) ဆိုတဲ့ expression ဟာ num1 နဲ့ num2 နှစ်ခုစလုံး not equal ဖြစ်မှ 1 ကို return ပြန်တယ်။ ဒါမှမဟုတ်ရင် 0 ကို return ပြန်တယ်။ 


(~num1) ဆိုတဲ့ expression ဟာ num1 ရဲ့ binary bit တွေကို 1 ဆိုရင် 0 ပြောင်းပေးတယ် 0 ဆိရင် 1 ပြောင်းပေးတယ်။ ~ ကို complement operator လို့ ခေါ်တယ်။


(num1 << 2) ဆိုတဲ့ expression ဟာ num1 ရဲ့ ဘယ်ဘက်မှာရှိတဲ့ binary bit တွေကို 2 နေရာ ဖျက်ပြီး ယာဘက် 2 နေရာမှာ 0 ထည့်ပေးတယ်။ >> ကို left shift operator လို့ ခေါ်တယ်။


(num1 >> 2) ဆိုတဲ့ expression ဟာ num1 ရဲ့ ယာဘက်မှာရှိတဲ့ binary bit တွေကို 2 နေရာ ဖျက်ပြီး ဘယ်ဘက် 2 နေရာမှာ 0 ထည့်ပေးတယ်။ >> ကို right shift operator လို့ ခေါ်တယ်။

Example Of Bitwise Operators

public class BitwiseOperators {

  public static void main(String args[]) {


     int num1 = 11;  /* 11 = 00001011 */

     int num2 = 22;  /* 22 = 00010110 */

     int result = 0;


     result = num1 & num2;   

     System.out.println("num1 & num2: "+result);


     result = num1 | num2;   

     System.out.println("num1 | num2: "+result);

    

     result = num1 ^ num2;   

     System.out.println("num1 ^ num2: "+result);

    

     result = ~num1;   

     System.out.println("~num1: "+result);

    

     result = num1 << 2;   

     System.out.println("num1 << 2: "+result); result = num1 >> 2;   

     System.out.println("num1 >> 2: "+result);

  }

}

Ternary Operators

Boolean expression ကို evaluate လုပ်ပြီး true ဆိုရင် အရှေ့က value ကို assign လုပ်ပြီး false ဆိုရင် အနောက်က value ကို assign လုပ်တယ်။


Syntax:

variable num1 = (expression) ? value if true : value if false 

တကယ်လို့ boolean expression ဟာ true ဆိုရင် full colon(:) ရဲ့ရှေ့က value ကို num1 ထဲမှာ assign  လုပ်ပြီး false ဆိုရင် နောက်က value ကို assign လုပ်တယ်။ If-Else နဲ့ ပုံစံတူတယ်။

Example Of Ternary Operators

public class TernaryOperator {


   public static void main(String args[]) {


     int num1, num2;

     num1 = 25;

        

num2 = (num1 == 10) ? 100: 200;

System.out.println( "num2: "+num2);


num2 = (num1 == 25) ? 100: 200;

System.out.println( "num2: "+num2);

   }

}

Operator Precedence In Java

Expression တစ်ခုမှာ operators တွေ အများကြီး ပါဝင်နေခဲ့ရင် ဘယ် operator ကို အရင် evaluate လုပ်မှာလဲ။ Higher precedence ကနေ lower precedence, ပထမ ဉီးစားပေး နဲ့ နောက်ဆုံး ဉီးစားပေးကို အောက်မှာ ဖော်ပြထားပါတယ်။


Unary Operators

++  – –  !  ~


Multiplicative Operators

*  / %


Additive Operators

+  –


Shift Operators

<<  >>  >>>


Relational Operators

>  >=  <  <=


Equality Operators

==  !=


Bitwise AND Operator

&


Bitwise XOR Operator

^


Bitwise OR Operator 

|


Logical AND Operator

&&


Logical OR Operator 

||


Ternary Operator

?:


Assignment Operator

=  +=  -=  *=  /=  %=  >  >=  <  <=  &=  ^=  |=


**********

Next : အခြေခံ ကွန်ပျူတာပရိုဂရမ် ရေးသားနည်း - Conditionals

Previous : အခြေခံ ကွန်ပျူတာပရိုဂရမ် ရေးသားနည်း - Data Types




Comments

Popular posts from this blog

စာသင်ကြားရန် အသုံးပြုသည့် ဆော့ဖ်ဝဲများ

အခြေခံ ကွန်ပျူတာပရိုဂရမ် ရေးသားနည်း - Objected-Oriented Programming

သင့်ရဲ့ ပထမဉီးဆုံးသော ကွန်ပျူတာ ပရိုဂရမ် (Hello, World!)