Sunday, September 23, 2012

5. C පස්වන පාඩම - Switch Case (මං මාරු ක්‍රමය)

මන් සන්ධියක්.... 

කලින් පාඩමේදි මෙන්ම මේ පාඩමේදීත් අපි C භාෂාවේ බාවිතා වන තවත් කොන්දේසිගත(Conditional) විදික්‍රමයක් ගැන කතා කරමු. මං මාරු ක්‍රමය හෙවත් switch case statement එක හරහාද අපිට කලින් if else හිදි මෙන්ම තෝරාගැනීමක්(Selection) සිදුකරගත හැකිය. නමුත් if else භාවිතයේදිට වඩා මෙහි භාවිතය වෙනස් වේ. එමනිසා ක්‍රමලේඛ සැකසීමේදි අවශ්‍ය විටදි අවශ්‍ය කුමන ක්‍රමයදැයි තීරණය කිරීම ක්‍රමලේඛකරු (Programmer) සතු කාර්යකි.

මූලික මංමාරු පදගැලපුම (Basic switch syntax)


switch ( <variable> ) {
case this-value:
  Code to execute if <variable> == this-value
  break;
case that-value:
  Code to execute if <variable> == that-value
  break;
...
default:
  Code to execute if <variable> does not equal the value following any of the cases
  break;
}


මෙහිදි සිදුවන්නෙ මුලදි (switch) ලබා දෙන <variable> අගයට අනුව සත්‍යවන අවස්ථාව (case) execute කිරීමයි. ඒ අනුව switch case මගින් අපට නිර්ණය කළ හැක්කෙ යම් කිසි අගයකට සමාන වන අවස්ථාවේදි සිදුවිය යුතු කාරණය ගැන පමණි.

මෙය පැහැදිලි කරගැනීම සඳහා පහත ඇති රූපය බලන්න.




තව දුරටත් පැහැදිලි කරගැනීම සඳහා සරල උදාහරණයක් මගින් සාකච්ඡා කරමු.

int a = 10;
int b = 10;
int c = 20;

switch ( a ) {
case b:
  printf("a is equal 10");
  break;
case c:
  printf("a is equal 20");
  break;
default:
  printf("a is not equal b or c");
  break; 
} 

ඉහත උදාහරණයේ a සඳහා දෙන අගයන් වෙනස් කරමින් උත්සාහ කරන්න. a = 10 අවස්ථාවේදී ඔබට පිළිතුර ලෙස a is equal 10 ලෙස දිස්වෙනු ඇත.
එමෙන්ම a = 20 විට එය a
is equal 20 ලෙසත්, a සඳහා වෙනත් ඕනෑම අගයක් දුන් විට පිළිතරු ලෙස a is not equal b or c ලෙසත් දිස්වනු ඇත.

එනම් මං මාරු ක්‍රමය ක්‍රමලේඛයේදි හංදියක් වැනිය. අපට යා යුතු මග තෝරා දුන් පසු ක්‍රමලේඛය විසින් ඒ මගේ ගමන් කරනු ඇත.



Read More