Showing posts with label Java Operators. Show all posts
Showing posts with label Java Operators. Show all posts

Sunday, April 11, 2010

ජාවා කාරක (Java Operators) 3 කොටස :: Boolean Logical Operators

අපි මීට පෙර පාඩමෙන් කතා කලේ relational operators ගැනයි. මෙම පාඩමෙන් boolean logical operators ගැන ඉගෙන ගනිමු. තාර්කික අවශ්‍යතා ඉටුකර ගැනීම සඳහා මෙම ඔප‍රේටර් වර්ගය යොදා ගත හැකිය. අපි පහත වගු තුලින් මෙම ඔප‍රේටර් පිලිබඳව අධ්‍යයනය කරමු.

Boolean Logical Operators

Operator Name
&
Logical AND
|
Logical OR
^
Logical XOR
&&
Short Circuit AND
||
Short Circuit OR
!
Logical NOT
&=
AND Assignment
|=
OR Assignment
^=
XOR Assignment
==
Equal To
!=
Not Equal To
? :
Ternary operator (if - then - else)

&& (AND  Operator)
පහත වගුව තුලින් මෙහි ක්‍රියාකාරීත්වය අධ්‍යයනය කරමු
syntax : A && B
A B A && B
false
false
false
false
true
false
true
false
false
true
true
true

||  (OR  Operator)
පහත වගුව තුලින් මෙහි ක්‍රියාකාරීත්වය අධ්‍යයනය කරමු
syntax : A || B
A B A || B
false
false
false
false
true
true
true
false
true
true
true
true

^  (XOR  Operator)
පහත වගුව තුලින් මෙහි ක්‍රියාකාරීත්වය අධ්‍යයනය කරමු
syntax : A ^ B
A B A ^ B
false
false
false
false
true
true
true
false
true
true
true
false

!  (NOT  Operator)
A !A
false
true
true
false

දැන් බලමු  Logical AND සහ Short Circuit AND ඔප‍රේටර් අත‍ර වෙනස කුමක්ද කියලා. 
Logical AND ඔප‍රේටර් එකේදී ඔප‍රේටර් එකට දෙපසම ඇති conditions අනිවාර්‍යයෙන්ම ඇගයීම (evaluate) සිදුවනවා. නමුත් Short Circuit AND ඔප‍රේටර් එකෙදී වම් පස conditions එක false නම් දකුණුපස condition එක ඇගයීමකින් තොරවම අවසන් ප්‍රතිඵලය false ලෙස සටහන් ක‍රනවා, මන්දයත් AND මගින් false return කිරීමට එක් condition එකක් false වීම ප්‍රමාණවත් බැවිණි.

මෙලෙසින්ම Short Circuit OR ඔප‍රේටර් එකේදී වම් පස condition එක true ලෙස පවතීනම් දකුණුපස condition එක ඇගයීමකින් තොරවම අවසන් ප්‍රතිඵලය true ලෙස සටහන් ක‍රනවා. මන්දයත් OR මගින් true return කිරීමට එක් condition එකක් true වීම ප්‍රමාණවත් බැවිණි.

මෙලෙස Short Circuit ඔප‍රේටර් භාවිතා කිරීම මගින් විශාල වශයෙන් ජාවා වැඩසටහනක කාර්‍යක්ශමතාව වැඩි කල හැකිය. මේ නිසා මේ ඔප‍රේටර් දෙක අතුරින් ජාවාහි conditional operator එකක් ලෙස බහුලව භාවිතාවනුයේ Short Circuit ඔප‍රේටර්ය.

Boolean Logical Operators හි ක්‍රියාකාරීත්වය අධ්‍යයනය කිරීමට ලියන ලද ජාවා වැඩසටහනක් පහත දැක්වේ. 

class BoolOp {
 public static void main(String args[]){
  boolean a=true;
      boolean b=false;
      System.out.println("Value of  a : " +a);
      System.out.println("Value of  b : " +b);
      System.out.println(" !a         : " + (!a));
      System.out.println("a & b       : " + (a & b));
      System.out.println("a | b       : " + (a | b));
      System.out.println("a ^ b       : " + (a ^ b));
      System.out.println("a && b      : " + (a && b));
      System.out.println("a || b      : " + (a || b));
 }
}


ප්‍රතිඵලය :

පහත ජාවා applet එක භාවිතයෙන් ඔබට මෙම ඔප‍රේටර්වල ක්‍රියාකාරීත්වය තවදුරටත් අධ්‍යයනය කල හැක.

ජාවා කාරක (Java Operators) 2 කොටස :: Relational Operators

මීට පෙර ජාවා ඔප‍රේටර් ගැන කල පාඩමෙන් සාකච්ඡා වුනේ arithmetic operators පිලිබඳවයි. මම මෙම පාඩමෙන් පහදා දීමට උත්සාහ ක‍රන්නේ relational operators පිලිබඳවයි. relational operators යොදා ගැනෙන්නේ කිසියම් අගයන් හෝ විචල්‍යයන් අත‍ර සම්බන්දය ඇගයීම‍ටයි(evaluate).

උදාහ‍රණයක් වශයෙන් a හා b ලෙස විචල්‍යයන් 2 ක් ඇතැයි සිතන්න. a හා b සමානද, a හා b අසමානද, a, b ට වඩා විශාලද, a, b ට වඩා කුඩාද, a, b ට වඩා විශාල හෝ සමානද, a, b ට වඩා කුඩා හෝ සමානද යන්න පරීක්ශා කිරීම සඳහා අපට relational operators යොදාගත හැකිය. relational operators සැම විටම ප්‍රතිඵලය ලබා දෙනුයේ boolean ආකාරයෙනි.

අපි පහත වගුව තුලින් relational operators පිලිබඳ තවදුරටත් බලමු.

මෙහිදී මම a=18,b=21,c=21 ලෙස අගයන් ආදේශ ක‍රඇති integer විචල්ය්‍යයන් 3 ක් ගෙන ඇතිබව සලකන්න.

(operator) operator name usage result
==
Equal to
a==b
false
!=
Not equal to
b!=c
false
>
Greater than
b>c
false
<
Less than
a<b
true
>=
Greater than or equal to
b>=c
true
<=
Less than or equal to
b<=a
false

මෙය තවත් තහවුරු ක‍රගැනීම සඳහා ලියන ලද ස‍රල ජාවා වැඩසටහන පහත ප‍රිදිවේ.

class RelationalOp{
 public static void main(String args[]){
   int a=18;
   int b=21;
   int c=21;
   System.out.println("Value of a       :" + (a));
   System.out.println("Value of b       :" + (b));
   System.out.println("Value of c       :" + (c));
   System.out.println("a == b           :" + (a==b));
   System.out.println("b != c           :" + (b != c));
   System.out.println("b > c         :" + (b > c));
   System.out.println("a < b         :" + (a < b));
   System.out.println("b >= c        :" + (b >= c));
   System.out.println("b <= a        :" + (a == b));
 }
}
ප්‍රතිඵලය:

ඔබට පහත ජාවා applet එක භාවිතයෙන් මෙම relational operators භාවිතා වන ආකාය තවත් පැහැදිලි වනු ඇති.



අපි ඊලඟ පාඩමෙන් බලමු Boolean logical operators ක්‍රියා කරන ආකාරය.

Friday, April 9, 2010

ජාවා කාරක (Java Operators) 1 කොටස

කලින් පාඩමෙන් පොරොන්දුවූ ප‍රිදිම මෙම පාඩමෙන් ජාවා operators පිලිබඳ සාකච්චා ක‍රන්න මම හිතුවා. කාරක(operators) යනු ඕනෑම ප‍රිගණක භාෂාවක අනිවාර්ය කොටසක්, මොකද ඔප‍රේටර් නොමැතිව අංක ගණිතමය, වීජ ගණිතමය හෝ තාර්කික අවශ්‍යතා ඉටුකරගත නොහැකියි. ජාවා තුල භාවිතාවන ඔප‍රේටර් සියල්ලක්ම පාහේ භාවිතා වන ආකාරය C/C++ වලදී ඔප‍රේටර් භාවිතා වන ආකාරයට සමානයි.
අපි දැන් බලමු ජාවා තුල භාවිතා වන මූලික ඔප‍රේටර් වර්ග මොනවාද කියලා.

  1. Arithmetic operators
  2. Relational operators
  3. Boolean logical operators
  4. Bitwise operators
අපි මෙම පාඩමෙන් සාකච්ඡා ක‍රන්නේ Arithmetic operators පිළිබඳවයි.
 මෙහිදී අපි a හා b යනුවෙන් integer විචල්‍යයන් 2 ක් යොදාගනිමු. a=14 ලෙසද b=8 ලෙසද assign ක‍රමු. ප්‍රථිඵලය රඳවා ගැනීමට c යනුවෙන් integer variable එකක්ද ගනිමු. පහත ඉදිරිපත් ක‍ර ඇති වගුව භාවිතයෙන් මේවායේ ක්‍රියාකාරීත්වය තේරුම් ගැනීමට උත්සාහ කරමු.
 int a=14; int b=8; int c;

කාරකය
(operator)
 කාරකයේ නම
operator name 
භාවිතය
usage
ප්‍රතිඵලය
result
+ Addition c=a+b  c=22
- Subtraction c=a-b  c=6
* Multiplication c=a*b  c=112
/ Division c=a/b  c=1
% Modulus c=a%b  c=6
+= Addition Assignment a+=b  a=22
-= Subtraction Assignment a-=b  a=6
*= Multiplication Assignment a*=b  a=112
/= Division Assignment a/=b  a=1
%= Modulus Assignment a%=b  a=6
++ Increment c=a++  c=15
-- Decrement c=b--  c=7
දැන් අපි ඉහත වගුව පිලිබඳ වැඩිදුරටත් අධ්‍යයනයක යෙදෙමු.

මුල් ඔප‍රේටර් 4 සම්බන්දව පැහැදිලි කිරීමට අවශ්‍ය නැහැ ඒවා බැලූ පමණින් සිදුව ඇතිදෙය තේරුම් ගන්න පුලුවන්. අපි modulus ඔප‍රේටර් එකේ ඉඳලා බලමු.

modulus operator එකෙන් සිදුක‍්රන්නේ යම් සංඛ්‍යාවක් තවත් සංඛ්‍යාවකින් බෙදූවිට ඉතිරිවන අගය ලබාදීමයි. උදාහ‍රණයක් ලෙස a%b=6 ලෙස ඉහත වගුවේ දැක්වෙනවා, 14 සංඛ්‍යාව 8 න් බෙදූවිට 6 ක් ඉතිරි වනවා.


Addition Assignment operator එකෙන් a=a+b ලෙස ලියන දෙයම a+=b ලෙස කෙටික‍ර ලියන්න පුලුවන්. අනිත් assignment operators සියල්ල මගින් සිදුවන්නේ එම ආකාරයේ ක්‍රියාවලියක්.
උදා :
a*=b   ->  a=a*b
a%=b  -> a=a%b
පහත ජාවා වැඩසටහන තුලින් මූලික arithmetic operators කිහිපය ක්‍රියාකරන අයුරු තවත් පැහැදිලි කරගන්න පුලුවන් වේවි.
class Operators{
 public static void main(String args[]){
  int a=14;
  int b=8;
  int tmp=0;
  System.out.println("Value of a = " + a );
  System.out.println("Value of b = " + b );
  System.out.println("a + b      = " + String.valueOf(a+b) );
  System.out.println("a - b      = " + String.valueOf(a-b) );
  System.out.println("a * b      = " + String.valueOf(a*b) );
  System.out.println("a / b      = " + String.valueOf(a/b) );
  System.out.println("a % b      = " + String.valueOf(a%b) );
  System.out.println("a ++       = " + String.valueOf(a++) );
  System.out.println("Value of a = " + a );
  System.out.println("b --       = " + String.valueOf(b--) );
  System.out.println("Value of b = " + b );
 }
}
පැහැදිලි කිරීම: 
String.valueOf()  method එක භාවිතා කරනුයේ integer ආකාරයෙන් ඇති ගණිතමය ප්‍රතිඵලය console එකට යැවීමට පෙර String ආකාරයට පත් කිරීමටයි.  
ප්‍රතිඵලය:
අපි අනෙකුත් operators පිලිබඳව ඉදිරි පාඩම් පෙලකදී බලමු.