အခြေခံ ကွန်ပျူတာပရိုဂရမ် ရေးသားနည်း - 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 တွေကို ထည့်သွင်းပေးထားတယ်။
Basic Arithmetic Operators
Assignment Operators
Auto-increment and Auto-decrement Operators
Logical Operators
Comparison (Relational) Operators
Bitwise Operators
Ternary Operators
Basic Arithmetic Operators
သင်္ချာမှာ ပေါင်းနုတ်မြောက်စားဟာ မပါလို့မပြီးသလို နိစ္စဓူဝ စာရင်းအင်း နဲ့ လက်တွေ့ဘဝမှာလည်း ပေါင်းနုတ်မြောက်စားဟာ အသုံးများတယ်။
Arithmetic Operators အသေးစိတ်အချက်အလက်ကို အောက်ကဇယားမှာ ကြည့်ရှုနိုင်ပါတယ်။
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 အသေးစိတ်အချက်အလက်ကို အောက်ကဇယားမှာ ကြည့်ရှုနိုင်ပါတယ်။
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
Post a Comment