Sunday, September 16, 2012

Operators in Java (part I)

කොහොමද ඉතිං යාලුවනේ? අපි අද ගොඩක් වැදගත් පාඩමක් තමයි කතාකරන්න යන්නෙ. ඒ ගැන මම කලින් ලිපියෙනුත් ඉඟියක් දුන්නනෙ. ඉතිං අපි අද java වලින් program කරද්දි අපිට භාවිතා කරන්න වෙන operators ගැන තමයි කතා කරන්න යන්නෙ. ඇයි මේ පාඩම වැදගත් කියල මම කියන්නෙ? ඇයි අපි program එකක් ලියන්නෙ? අපි program එකක් ලියන්නෙ යම් දත්ත ප්‍රමාණයක් සකස් කරල අපිට අවශ්‍ය තොරතුරු ලබාගන්න. ඔයාලට මතක ඇති අපි කරා වෘත්තයක අරය දීල පරිධිය සහ වර්ගඵලය පිළිතුර ලෙස දෙන program එකක්. අපි අරය දත්තයක් විදිහට දුන්නම ඒකට යම්කිසි වෙනසක් කරල තමයි අපි අවශ්‍ය පිළිතුර ලබාගත්තෙ. අන්න ඒ විදිහට දත්තය අපිට අවශ්‍ය විදිහට සකස් කරගන්න පාවිච්චි කරන දේවල් තමයි අපි operators කියල කියන්නෙ. ඉතිං මේකෙ වැදගත්කම දැනටමත් තේරෙනව ඇති. Operators වලින් තමයි අපි program එකෙන් බලාපොරොත්තු වෙන දේ අපිට කරල දෙන්නෙ. ඒ නිසා operators නැතුව program එකක් ලියන්න බෑ. අන්න ඒකයි මම කිව්වෙ මේ පාඩම වැදගත් කියල. අනිත් එක තමයි මේක java වලට විතරක් තියෙන දෙයක් නෙමෙයි. ගොඩක් languages වල මේ operators වල ක්‍රියාකාරිත්වය සිදුවෙන්නෙ එකම විදිහට. ඒ නිසා වෙනත් languages ඉගෙනගන්න අයටත් මේ පාඩමෙන් දෙයක් ගන්න පුළුවන්. හැඳින්වීම දිග වැඩිද මන්ද.... පාඩම ටිකක් වැදගත් නිසා ටිකක් විස්තර කළා.

එහෙනම් අපි පාඩම පටන් ගමු..........



මම කිව්වනෙ operators වලින් තමයි program එකක අවශ්‍ය ක්‍රියාව සිද්දවෙන්නෙ කියල. ඉතිං විවිධ ක්‍රියා කරගන්න operators ගොඩක් තියෙනව. ඉතිං මේවයෙන් වෙන ක්‍රියාවලිය අනුව operators වර්ගීකරණයකට ලක් කරල තියෙනව. අපි මුලින්ම ඒ වර්ගීකරණය කෙටියෙන් බලල එකින් එක ගැන කතා කරමු.

 Simple Assignment Operator


=       Simple assignment operator

String Concatenation Operator

  +      String concatenation operator

Arithmetic Operators

+       Additive operator (also used for String concatenation)
-       Subtraction operator
*       Multiplication operator
/       Division operator
%       Remainder operator

Unary Operators

+       Unary plus operator; indicates positive value
-       Unary minus operator; negates an expression
++      Increment operator; increments a value by 1
--      Decrement operator; decrements a value by 1
!       Logical complement operator; inverts the value of a boolean

Equality and Relational Operators

==      Equal to
!=      Not equal to
>       Greater than
>=      Greater than or equal to
<       Less than
<=      Less than or equal to

Conditional Operators

&&      Conditional-AND
||      Conditional-OR
?:      Ternary (shorthand for if-then-else statement)

Type Comparison Operator

instanceof      Compares an object to a specified type 

Bitwise and Bit Shift Operators

~       Unary bitwise complement
<<      Signed left shift
>>      Signed right shift
>>>     Unsigned right shift
&       Bitwise AND
^       Bitwise exclusive OR
|       Bitwise inclusive OR

අපි මේ එකින් එක අරගෙන සාකච්චා කරමු.


Simple Assignment Operator

මේ operator එක ඔයාල දැනටමත් භාවිත කරල පුරුදු එකක්. මේ operator එකේ සංකේතය තමයි “=” සමාන සලකුණ. මේකෙන් කරන්නෙ variable එකකට value එකක් assign කරන එක. මේක ලියන ක්‍රමය (syntax) එක තමයි,

<left_operand> = <right_operand> (operand කියන්නෙ අපි කරන ක්‍රියාවට භාජනය වන දෙය)

මේ operator එකෙන් වෙන්නෙ වම්පැත්තෙ operand එකට දකුණුපැත්තෙ operand එකේ අගය ලැබීමයි. (assign වීමයි) මේක භාවිත කරන ක්‍රමය ඔයාල දැනටමත් දන්නව. ඒත් ලිපිය සම්පුර්ණ වෙන්න ඕනෙ නිසා මම උදාහරණ කීපයකුත් දාන්නම්.

byte b = 5; //මෙතනදි b variable එකට(left operand) 5 කියන අගය(right operand) assign කරනව.
 
int x = b;  //මේකෙ left operand එක වෙන්නෙ x variable එක. Right operand එක b variable එක. මෙතනදි bහි අගය x assign වෙනව.

String Concatenation Operator

මේකත් ඔයාල භාවිත කරල තියෙන operator එකක්. print statement වලදි තමයි වැඩිපුර භාවිත වෙන්නෙ. මේ operator එකේ සංකේතය “+” ධන ලකුණ. මේකෙන් කරන්නෙ string එකක් තවත් string එකක් හෝ වෙනත් අගයක් සමග එකතු කිරීම. ඔයාලට මතක ඇති අපි මෙහෙම print statement ලිව්ව.

System.out.println(“The result is”+result);

මෙතන result කියන්නෙ variable එකක් කියල හිතන්න. මේ statement එකේදි + ලකුණෙන්  The result is” කියන string එකයි result variable එකේ අගයයි එකතු කරල අලුත් string එකක් හදනව. මේ operator එක print statement වලදි විතරක් නෙමෙයි භාවිත කරන්න පුළුවන්. මම ඒකට උදාහරණයක් විදිහට පොඩි program එකක් දැම්ම. ඒක අධ්‍යයනය කරල බලන්නකො.
 





Arithmetic Operators

ඉහලින් තියෙන operators list එකේ arithmetic operators යටතේ තියෙන operators ටික බැලුවම කාටත් තේරෙනව මේ ගණිතයේ භාවිත වන ගණිත කර්ම කියල.අපිට program එකකදි ගණිත කර්ම සිදුකරගන්න අවශ්‍ය වුනාම භාවිත කරන operators තමයි arithmetic operators කියන්නෙ. ගණිත කර්ම ගැන ඔයාල දන්න නිසා මම ඒ ගැන කියල දෙන්න යන්නෙ නෑ. මේ ගැන විශේෂ කරුණු විතරක් සඳහන් කරන්නම්. මුලින්ම එකතු කිරීමේ ලකුණ ගත්තොත්, මේ operator එක string concatenation operator එක විදිහටත් භාවිත වෙනව. ගණිත කර්ම වලදි ගුණකිරීම සඳහා අපි සාමාන්‍යයෙන් භාවිත කරන්නෙ “x” සලකුණ වුනත් පරිගණක භාෂා වලදි භාවිත වෙන්නෙ “*” මෙන්න මේ තරු ලකුණ. ඊළඟට “%” සලකුණ තියෙන remainder operator එක ගැන නම් ඔයාල දන්නේ නැතුව ඇති. ඒ නිසා මම ඒ ගැන කියන්නම්. මේකෙන් කරන්නෙ පූර්ණ සංඛ්‍යා දෙකක් බෙදුවම ඉතිරිවන අගය දෙන එක. උදාහරණයක්‌ ගත්තොත් 5/2 ගන්නකො. මේකෙ පිළිතුර වෙන්නෙ 2යි ඉතිරි 1යි. අපි (5%2) කියන operation එකේ පිළිතුර සැලකුවොත් පිළිතුර වෙන්නෙ 1. මම arithmetic operators භාවිත කරපු උදාහරණයක්‌ පහත දැම්ම. ඒකෙන් මේව භාවිත කරන විදිහ බලාගන්න පුළුවන්.





Equality and Relational Operators

ඉදිරියට අපි programming කරගෙන යද්දි අපිට සිද්ධවෙනව විවිධ දේවල් සංසන්දනය කරන්න. ඒ වගේ වෙලාවල් වලදි අපිට ප්‍රයෝජනවත් වෙන්නෙ relational operators තමයි. හිතන්නකො අපිට අවශ්‍ය වුණා කියල variables දෙකක අගයන් සමානද කියල බලන්න. එතකොට අපිට පාවිච්චි කරන්න පුළුවන් equal to “==” කියන operator එක. හොඳට මතක තියාගන්න ඕනෙ අපි “=” සලකුණ assignment operator එක විදිහට යොදාගත්ත නිසා සමාන කරන්න භාවිත කරන්නෙ “==” සමාන සලකුණු දෙකක්. මේක ගොඩක් අයට වරදින තැනක්. ඒ නිසා හොඳට මතක තියාගන්න.

Equal to කියන operator එකේ විරුද්ධ operator එක තමයි not equal to “!=” operator එක. මේකෙන් දෙපැත්තෙ තියෙන operands දෙක අසමානද කියල තමයි බලන්නෙ.

>, <, <=, >= මේ operators 4 ත් ඔයාලට හොඳට පුරුදු operators 4 ක්. ගණිතයට මේව ඉගෙනගන්නවනෙ. ඒ නිසා වැඩි විස්තර නැතුව මම උදාහරණයකින්ම පැහැදිලි කරන්නම්.




හොඳයි අපි අද operators කිහිපයක් ගැන කතා කළා. මේ දවස වල ටිකක් කාර්ය බහුලයි. ඒ නිසා මම ඊළඟ ලිපියෙන් ඉතිරි operators ගැන කියල දෙන්නම්. යන්න කලින් දෙයක් තියෙනව කියන්න. Programming ඉගෙනගන්න ආස අයනෙ මේ බ්ලොග් එක කියවන්නෙ. ඒ නිසා මම දෙන program ටික විතරක් කරල නිකන් ඉන්න එපා. මේව වෙනස් කරල බලන්න. ගැටළුවක් ඇති වුණොත් comment එකක් දාන්න පුළුවන්නෙ. පුළුවන් නම් මම කියල දුන්නෙ නැති දේවල් ගැනත් හොයල බලන්න. එතකොට මම කියල දෙනකොට එව වඩාත් හොඳට තේරුම ගන්න පුළුවන්. එහෙනම් යාලුවනේ මම පුළුවන් ඉක්මනට අනිත් ලිපියත් දාන්නම්කො. සුභ දවසක්....!!






8 comments:

  1. supiriii... digatama karagena yanna

    ReplyDelete
  2. සුපරි ම සුපිරි. තව තවත් ලිපි දාන්න. හරිම අාසයි කියවන්න.

    ReplyDelete
  3. mata godak prayojana wath wona sisthuti digtama liyanna

    ReplyDelete
  4. Loku udawwak meka.digatama karagena yanna

    ReplyDelete
  5. Godak prayojanawath sinahalen pehediliwa thiyena nisa. Digatama karagana yanna.

    ReplyDelete