Sunday, May 2, 2010

ජාවා Iterations (loops)

අපි මේ පාඩමෙන් සාකච්ඡා ක‍රන්න යන්නේ ජාවාහි ඉතාම වැදගත් කොටසක් ගැන. එනම් Iterations (නැවත නැවත සිදුකිරීම්) ජාවා වලදී පමණක් නොවෙයි ඕනෑම ක්‍රමලේඛන භාෂාවකදී Iterations හෙවත් loops ඉතා වැදගත් වනවා.
Iterations භාවිතා වන අවස්ථා වලට උදාහ‍රණ:

  • කිසියම් array එකක් තුල ඇති elements (අවයව) එකින් එක පිලිවෙලින් පරීක්ෂා කිරීම.
  • විවිධ ඇල්ගොරිතම් (algorithm) නිර්මාණයේදී.
  • කිසියම් දත්ත සමූහයක් විශ්ලේෂණය කිරීමේදී
අපි දැන් බලමු ජාවාතුල භාවිතාවන looping structures මොනවාද කියලා.
  • while
  • do - while
  • for
  • for - each
while Loop
 syntax:
while(expression){
 //do something
}
මෙහිදී expression එක true ලෙස පවතින තාක් loop එක ක්‍රියාත්මක වීම සිදුවේ (නැවත නැවත සිදුවේ). අපි දැන් while loop එක ක්‍රියාත්මක වන අන්දම විස්තරාත්මකව බලමු.
මෙහිදී expression එකෙහි boolean අගය පරීක්ෂා කිරීම සිදුවනවා. එය false නම් while එක ඇතුලේ ඇති statement එක execute කිරීම සිදුනොක‍ර කෙලින්ම loop එකෙන් පිටතට යාම සිදුක‍රනවා. එය true නම් while loop එක ඇතුලේ ඇති statement execute ක‍ර අවසානයේ නැවත expression එක පරීක්ෂා ක‍රනවා. මේ ආකාරයට දිගින් දිගටම මෙය සිදුවනවා. සාමාන්‍යයෙන් while loop එකක් යොදාගන්නේ loop එක කොපමණ වාර ගණනක් ක්‍රියාත්මක විය යුතුද යන්න කලින් අනුමාන කල නොහැකි අවස්ථා වලදීය.
අපි ස‍රල ජාවා වැඩසටහනකින් බලමු while iteration එකක් ක්‍රියා කරන ආකාරය.
ex :
class WhileDemo {
 public static void main(String args[]){
  int val=(int)(Math.random()*10);
  while(val !=5){
   System.out.println(val);
   val=(int)(Math.random()*10);
  }
 }
}

output :

මෙහිදී සසම්භාවී ලෙස 0 සිට 9 තෙක් පූර්ණ සංඛ්‍යා උත්පාදනය කොට ලැබුනු සංඛ්‍යාව 5 නම් loop එක නැවැත්වීම සිදුක‍රනවා. මෙහිදී අපිට 5 කීවෙනි සංඛ්‍යාව ලෙස ලැබේදැයි කිව නොහැකියි. එමනිසා මෙවැනි අවස්ථාවකදී while loop එක උපයෝගී ක‍රගැනීම පහසුයි. ඉහත උදාහ‍රණයේ 2,6,9,0,8,0,8,6,2 යන සංඛ්‍යා පිලිවෙලින් ලැබී අවසානයේ ලැබී ඇත්තේ 5 යි. එමනිසා while loop එක නැවතීම සිදුවී තිබෙනවා.

do - while loop
 syntax:
 

do{
 //do some thing
}while(expression);

මෙහිදි expression එක ප‍රීක්ෂා කිරීම සිදුක‍රන්නේ statements execute කිරීමෙන් පසුවයි.

example :

class DoWhileDemo {
 public static void main(String args[]){
  int val=(int)(Math.random()*10);
  do{
   System.out.println(val);
   val=(int)(Math.random()*10);
  }while(val !=5);
 }
}
output :


මෙහිදී generate ක‍රන ලද සංඛ්‍යාව 5 ට අසමානද යන්න ප‍රීක්ෂා ක‍රනුයේ loop එක අවසානයේ දිය. console එකෙහි මුලින් 5 print වීම‍ට හේතුව මෙයයි.

for loop
 syntax:
for(initialization ; Expression ; UpdateStatement ){
 //do something
}

example :

int tot=0;
for(int i=1;i<=30;i++){
 tot+=i;
}

සාමාන්‍යයෙන් for loop එකක් භාවිතා ක‍රන්නේ loop එක ක්‍රියාත්මක වන වාර ගණන දන්නා විටදීය.

for - each loop
syntax :
for(element : array ){
 //do something
}

මෙහිදී දෙනලද array එකක් තුල ඇති සියලු අවයව (elements) එකින් එක ලබාගැනීම කලහැකියි. දී ඇති element නම් variable එක තුලට සෑම iteration එකක දීම value ලබාදීම සිදුක‍රනවා. අපි ස‍රළ ජාවා වැඩසටහනක් තුලින් බලමු for - each iteration එක ක්‍රියා කරන ආකාරය.

example :


class ForEachDemo{
 public static void main(String args[]){
  int arr[]={33,45,67,78,56};
  int tot=0;
  for(int i:arr){
   System.out.println(i);
   tot=tot+i;
  }
  System.out.println("Sum : " + tot );
 }
}

output :

loop වල ක්‍රියාකාරීත්වය පෙන්වීම සඳහා ලියන ලද පහත ජාවා ඇප්ලටය භාවිතා කර බලන්න.

4 comments:

  1. Nice dispatch and this fill someone in on helped me alot in my college assignement. Thanks you for your information.

    ReplyDelete