Arduino Programming සිංහලෙන් 06 - Loops , while, do-while and for loop

මෙහිදී අර්ඩුයිනෝ වල එන ප්‍රධාන ලුප් භාවිතයන් පිලිබදව කතා කරනවා. මෙහිදි while, do-while, සහ for loop සම්බන්ධව උදාහරණ සහිතව ඔබට පැහැදිලි කෙරේ

while

මේකත් loop function එකක්. මේකෙදි condition එක true වෙලා තියෙනකන් loop එක වැඩ කරනවා. loop එක ඉවර වෙන්නනම් condition එක false වෙන්නම ඕනෙ.

while( CONDITION ){
    //statements
}

මේකේ condition එක boolean වෙන්න ඕනෙ. ඒ කියන්නේ true false අගයක් වෙන්න ඕනෙ. සාමාන්යෙන් මේක අපි පාවිච්චි කරන්නේ input එකක් read කරද්දී. උදාහරණයක් විදියට හිතන්න button එකක් ඔන්බන් ඉන්නකන් LED එකක් පත්තු වෙන්න ඕනෙ කියල. එකට මේ විදියට while loop එක පාවිච්චි කරන්න පුළුවන්.

int led = digitalRead(2);
while(led==1){
   digitalWrite(13,HIGH);
   led = digitalRead(2);
}
digitalWrite(13,LOW);

ඒ වගේම for loop එක වෙනුවටත් මේක පාවිච්චි කරන්න පුළුවන්.

int value = 0;
while(value < 100){
   Serial.println(value);
   value++;
}

do…while

මේකත් while loop එක වගේමයි. නමුත් condition එක check කරන්නේ statements වැඩ කරාට පස්සේ. එකම condition එක දාල while loop එකයි do while loop එකයි run කලොත්, do while loop එක while loop එකට වඩා එක පාරක් වැඩිපුර run වෙනවා.

int value = 0;
do{
   Serial.println(value);
   value++;
}while(value < 100);

for

for loop එක අපි පාවිච්චි කරන්නේ එකම දේ කීප වතාවක් කරන්න ඕන වුනාම. මේකෙදි loop එක වැඩකරන්න ඕන වාර ගණන අපිට හරියටම දෙන්න පුළුවන්. මුලින්ම for loop එකේ structure එක ගැන බලමු.

for (initialization; condition; increment) {
    //statements
}

initialization එකෙන් වෙන්නේ variable එකක් පටන් ගන්න ඕන අගය දෙන එක. අපි මෙතන පටන් ගන්න variable එක මේ loop එක ඇතුලේ ඕනෑම තැනක පාවිච්චි කරන්න පුළුවන්. උදාහරණයක් විදියට අපි int x = 1; කියල පටන් ගත්තොත්, x කියන variable එක අපිට loop එක ඇතුලේ පාවිච්චි කරන්න පුළුවන්.

condition එකෙන් වෙන්නේ ඒ condition එක true වෙලා තියෙනකන් loop එක වැඩ කරන එක. for loop එක වැඩකරන හැම වටයකදීම මේ condition එක check කරනවා.

increment එකෙන් කරන්නේ හැම වටයකදීම initialize කරපු variable එක නියත අගයකින් වෙනස් කරන එක.

for(int i=2; i<13; i++){
    digitalWrite(i,HIGH);
}
for(int i=100; i>10; i=i-5){
    Serial.println(i);
}

break

සමහර වෙලාවට අපිට අවශ්‍ය වෙනවා loop එකේ condition එක හැරුනම වෙන හේතුවක් හින්ද loop එක ඉවර කරන්න. ඒ වෙලාවට අපිට පුළුවන් break; පාවිච්චි කරන්න. මේක for loop, while loop, do while loop, switch case වගේ function වලදී පාවිච්චි කරන්න පුළුවන්.

මේක තවත් පැහැදිලි කරගන්න පුළුවන් මේ උදාහරණයෙන්. අපිට අවශ්‍ය වෙනවා 1 සිට 100 දක්වා display කරගන්න. නමුත් ඒ අතරේදී button එකක් press කලොත් එක නවතින්න ඕනෙ. මේකට අවශ්‍ය code එක අපිට for loop සහ break යොදාගෙන කරන්න පුළුවන්.

for(int i =1; i<101; i++){
    Serial.println(i);
    if(digitalRead(2)==1){
       break;
    }
}

continue

මේකෙන් වෙන්නේ loop එකකදී statements මගහැරලා යන එක. loop එක ඇතුලේ continue; කියන command එක හම්බුනොත් එතනින් පල්ලෙහට තියෙන දේවල් මග ඇරලා loop function එකේ මුලට යනවා.

මේකටත් කලින් උදහරනෙම ගමු. අපිට අවශ්‍යනම් 1 සිට 100 ට display කරන්න, නමුත් button එක press කරාම display වෙන එක විතරක් නවත්තල loop එක දිගටම ගෙනියන්න, අපිට පුළුවන් for loop එක සහ continue; පාවිච්චි කරන්න.

for(int i =1; i<101; i++){
    if(digitalRead(2)==1){
       continue;
    }
    Serial.println(i);
}

Arduino programming වලදී තවත් වැදගත්ම කොටසක් තමා මේ පාඩමෙන් කියල දුන්නේ. සාර්ථක program එකක් ලියන්න නම් මේ control structure ගැන දැනගෙන ඉන්නම ඕනෙ. මීළඟ පාඩම් වලදී අපි operators ගැන ඉගෙන ගමු. සුබ දවසක්.

What's Your Reaction?

like
20
dislike
0
love
9
funny
1
angry
1
sad
1
wow
7