Pages - Menu

Monday, June 10, 2013

J2SE - 02.4 Control Statements - for

සෑහෙන දවසකින් මොකුත් ලියන්නත් බැරි උනා.exam වලට ටිකක් හිර වෙලා හිටියේ.හොඳයි අද අපි බලමු ෆොර් ලූප්-for loop එක ගැන.දැන් ඔයාලා C/C++ හෝ C# එහෙම දන්නවා නම් මේක දෙයක් නෙවේ.මේ ෆොර් ලුප් එක සාධාරණ ආකාරය මෙන්න මේකයි

for loop

                        for(initialization; condition; iteration)

                         {
                        statement ;
                         }


මෙතන  { } වරහන් අවශ්‍ය වෙන්නේ statement එකකට වැඩි ප්‍රමාණයක් තියෙනවනම් විතරයි.නැත්නම් අවශ්‍ය නෑ.
මේ මොනවද මේ.දැන් බලමු.
  initialization - තර්කයේ ආරම්භය
  condition - මේකට සමහරු termination කියලත් කියනවා.තර්කයේ අවසානය.
  iteration - නැවත නැවත පියවර ගලා යාමේදී පෙර අගයට එකතු වෙන අගය.

මේ කෙහෙල්මල් ගැන බලමු තව ටිකක්.initialization එක මගින් වේරියබල් එකක අගය ආරම්භ කරලා ස්ථාවරව තබා ගැනීම සිදු කරනවා.condition කියන්නේ බූලියන් ප්‍රකාශයක්.හරියට මේ වගේ.
a>5.මේ ප්‍රකාශය සත්‍ය-true උනොත් ෆොර් ලුප් එක දුවනවා.අසත්‍ය-false උනොත් ලුප් එක එතනම නවතිනවා.iteration එකෙන් කරන්නේ ලුප් එක දුවන හැමසරේම වේරියබල් එකේ අගය කොහොමද මොන අගයකින්ද වැඩි කරන්නේ කියලා බලන එක..


බලමුද පොඩි ප්‍රෝග්‍රෑම් එකක් ලියලා.

ඕක රන් කලොත් මෙන්න මෙහෙම එනවා අවුට්පුට් එක.

දැන් බලමු මෙහෙම වෙන්නේ කොහොමද කියලා.මුලින්ම අපි int y කියලා අපේ ලුප් කන්ට්‍රෝල් වේරියබල් එක ඩික්ලෙයාර් කරලා තියෙනවා.initialization එක හැටියට දීල තියෙනවා y=0 කියලා.ඔන්න අපේ y ට අපි මුල් අගය ලබාදුන්නා.ඊළඟට හම්බෙනවා condition එක. ඒක අපි දීලා තියෙන්නේ y<5 කියලා.එයා කියන්නේ අපි මුලින් දීල තියෙන අගය එහෙම නැත්නම් ලුප් එක කැරකෙනකොට එන අගය 5 ට අඩු නම් විතරක් ලුප් එක දුවන්න කියලා.ඊලඟට iteration එක.මේකෙන් වෙන්නේ ලුප් එක දුවන හැමවෙලාවෙම මුලින් තිබ්බ අගයට කීයක් එකතු වෙන්න ඕනෙද නැත්නම් මුලින් තිබ්බ අගයෙන් කියක් අඩු වෙන්න ඕනෙද කියලා තමා බලන්නේ.
අපි ප්‍රෝග්‍රෑම් එක විස්තර කරගත්තා දැන් බලමු අපේ අවුට්පුට් එක ආවේ කොහොමද කියලා.

මුලින්ම අපේ y අගය 0 යි.ඊළඟට බලනවා 0 අගය 5 ට වඩා අඩුද කියලා.ඔව් 5 ට වඩා 0 අඩුයි (0<5).condition එක සත්‍යයි.ඒ හන්දා අපේ ලූප් එක දිගටම දුවනවා.ඊළඟට එයා යනවා  statement එකට .ඒ තමා y වල අගය print කරන්න කියලා.ඔන්න y වල අගය 0 කියලා ප්‍රින්ට් කරනවා.ඔන්න ඊළඟට එයා යනවා iteration .ඒ කියන්නේ  y 1 ක් එකතු කරන්න.එකතු කරනවා 1 ක්.දැන් y අගය 0+1 = 1 යි..ඊට පස්සේ ලූප් එක ආයේ උඩට එනවා.මොකද ලූප් එක exit වෙන්න නම් ලූප් එක අසත්‍ය වෙන්න ඕනෙනේ.

ඊළඟට ලූප් එක ආයෙ උඩට එනවා.y අගය දැන් 1 යි.1 අගය 5 ට වඩා අඩුයි(1<5).condition එක සත්‍යයි.ඊළඟට එයා යනවා  statement එකට .ඒ තමා y වල අගය print කරන්න කියලා.ඔන්න y වල අගය 1 කියලා ප්‍රින්ට් කරනවා.ඔන්න ඊළඟට එයා යනවා iteration .ඒ කියන්නේ  y 1 ක් එකතු කරන්න.එකතු කරනවා 1 ක්.දැන් y අගය 1+1 = 2 යි..ඊට පස්සේ ලූප් එක ආයේ උඩට එනවා.මොකද තාම condition එක අසත්‍ය-false උනේ නෑනේ.

ඊළඟට ලූප් එක අයෙ උඩට එනවා.y අගය දැන් 2 යි.2 අගය 5 ට වඩා අඩුයි(2<5).condition එක සත්‍යයි.ඊළඟට එයා යනවා  statement එකට .ඒ තමා y වල අගය print කරන්න කියලා.ඔන්න y වල අගය 2 කියලා ප්‍රින්ට් කරනවා.ඔන්න ඊළඟට එයා යනවා iteration .ඒ කියන්නේ  y 1 ක් එකතු කරන්න.එකතු කරනවා 1 ක්.දැන් y අගය 2+1 = 3 යි..ඊට පස්සේ ලූප් එක ආයේ උඩට එනවා.මොකද තාම condition එක අසත්‍ය-false උනේ නෑනේ.

ඔන්න උඩට ආවා ආයේ .y අගය දැන් 3යි.3 අගය 5 ට වඩා අඩුයි(3<5). condition එක තවම සත්‍යයි.ඊළඟට එයා යනවා  statement එකට .ඒ තමා y වල අගය print කරන්න කියලා.ඔන්න y වල අගය 3 කියලා ප්‍රින්ට් කරනවා.ඔන්න ඊළඟට එයා යනවා iteration .ඒ කියන්නේ  y 1 ක් එකතු කරන්න.එකතු කරනවා 1 ක්.දැන් y අගය 3+1 = 4 යි..ඊට පස්සේ ලූප් එක ආයේ උඩට එනවා.තාමත් condition එක අසත්‍ය-false උනේ නෑ.

ඔන්න උඩට ආවා ආයේ .y අගය දැන් 4යි.4 අගය 5 ට වඩා අඩුයි(4<5).condition එක සත්‍යයි.ඊළඟට එයා යනවා  statement එකට .ඒ තමා y වල අගය print කරන්න කියලා.ඔන්න y වල අගය 4 කියලා ප්‍රින්ට් කරනවා.ඔන්න ඊළඟට එයා යනවා iteration .ඒ කියන්නේ  y 1 ක් එකතු කරන්න.එකතු කරනවා 1 ක්.දැන් y අගය 4+1 = 5 යි..ඊට පස්සේ ලූප් එක ආයේ උඩට එනවා.තාමත් condition එක අසත්‍ය-false උනේ නෑ.

ඔන්න උඩට ආවා ආයේ .y අගය දැන් 5යි.5 අගය 5 ට වඩා අඩුද? නෑ 5 සමානයි 5 .අඩු නෑ.ඔන්න condition එක අසත්‍යයි.ඔන්න දැන් ලූප් එක අයින් වෙනවා.එයා යනවා main method එකේ } ලඟට.ඒකෙන් එලියට.ඊළඟට class එකේ } ලඟට.එකෙනුත් ඉවතට.එකියන්නේ ප්‍රෝග්‍රෑම් එක ඉවරයි.

තව දෙයක් තියෙනවා කියන්න.Professional Java Programmers ලා ප්‍රෝග්‍රෑම් කෝඩ් කරනකොට අර අපි ලියපු iteration එක ලියන්නේ වෙන විදියකට.අපි ලියපු iteration එක මෙහෙම ලියන්න පුළුවන්.
y++

y = y + 1

ඒකට හේතුව තමා ජාවා වල අපිට තියෙනවා increment operator කියලා එකක්.ඒතමා එකට එක ලඟින් ලියන ++ ලකුණු දෙක.ඒකෙන් කියන්නේ මුල් අගය එකකින් වැඩි කරන්න කියලා.
ඒවගේමයි එකකින් අඩු කරන්න ඕනේ නම් අපි ලියනවා එක මෙන්න මෙහෙම.
y--    මේකේ තේරුම y =  y - 1 කියන එකමයි.

ඉතින් දැන් අපි ලියපු අර ප්‍රෝග්‍රෑම් එක මෙහෙම ලියන්න පුළුවන්.
for(y = 0; y<5; y++)

තව තියෙනවා.අපි උද ප්‍රෝග්‍රෑම් එකේ අපේ for ලූප් එක ලියන්න කලින් int y කියලා y වේරියබල් එක ඩික්ලෙයාර් කලානේ.මේක අපිට මුලින් ලියන්නේ නැතුව for ලූප් එක ඇතුලෙම ඩික්ලෙයාර් කරන්න පුළුවන්.ඒ මෙන්න මෙහෙම.
for(int y = 0; y<5; y++)

තව දෙයක්.y<5 condition එක වගේම මම කිව්වා මේකට termination කියලත් කියනවා කියලා.මේකෙන්නේ අපේ ලූප් එක නවත්තන්නේ.බැරිවෙලාවත් මේ condition එක දාන අමතක උනොත් මොකෝ වෙන්නේ.හෙහේ මොකුත් නෑ.ඉවර නොවී ලූප් එක දුවනවා.ඒ කියන්නේ cmd එකේ y වල අගය දිගටම ප්‍රින්ට් වේවි යනවා.ඉවරයක්‌ නැතුව.මෙමරි ඉවරවෙනකන් දුවයි.

අදට ඔය ටික තමා.කෝඩ් බ්ලොක් සහ තව ෆොර් ලූප් දාලා ලියපු පොඩි ප්‍රෝග්‍රෑම් එකකින් හම්බෙමු.ටටා..

3 comments:

  1. මේක දිගටම කරගෙන යන්න. ඒක අපිට කරන ලොකු උදවුවක්. මොකද ජාවා වගේ අපි නොදන්න භාෂාවක් දන්න සිංහලෙන් ඉගෙන ගන්න තියෙන අවස්තාව අපේ රටේ බොහොම අඩුයි. ඒ නිසා අපි වගේ නවකයන්ට කරන උදවව්වක් වශයෙන් මේක දිගටම කරගෙන යන්න.

    ReplyDelete
  2. thanks metharam hondata kiyaladenawata.

    ReplyDelete
  3. godak hodai...plz digatama keragena yanna...mechcharakal java wela noterunu godak dewal igena gatta...

    ReplyDelete