Pages - Menu

Tuesday, June 18, 2013

J2SE - 02.5 Blocks of Codes (Code Blocks)

ඔන්න අදත් වැදගත් දෙයක් කියන්න යන්නේ මම.ජාවා ලියනකොට { } දානවා දැකල තියෙනවා නේද?
මේවා වල දාන්න තේරුම,කොහොමද දාන්නේ ? දාන්න ඕනේ මොන තැන් වලද කියලා හිතුනද? පොඩි ලාවට විස්තරයක් කලානේ කලින් පාඩම් වලදී.දැන් ටිකක් වැඩියෙන් කියන්න යන්නේ.ඒවගේම එහෙම දාද්දි හිතලා බලන්න ඕන වැදගත් කරුණු ටිකක් කියන්නත් තියෙනවා.මේවා ගොඩක් වැදගත් වෙනවා පොඩි පොඩි කරුණු උනත්.මොකද අපි ජාවා කෝඩ් කරනකොට අපිට හැමදාටම මේවා ඕනේ වෙනවා.


හොඳයි..මේ කෝඩ් බ්ලොක් කියන්නේ අපි ලියන ස්ටේට්මන්ට්ස්(statements) 2 ක් හෝ වැඩි ගානක් එකට එක් වෙන විදියට { } දැමීම.මේකෙන් වෙන්නේ මේ ස්ටේට්මන්ට්ස් ඔක්කොම එකම  ලොජිකල් යුනිට් එකක් වෙනවා.ඒ කියන්නේ හරියට තනි ස්ටේට්මන්ට් එකක් වගේ වෙනවා.හැබැයි එකක් නෙවේ.ඒත් එකක් විදියට වැඩ කරනවා.බලමු උදාහරණයකින්ම.

int x=5;
int y=2;

if (x > y)
   {
    System.out.println("x is more than y");
    System.out.println(x);
   }

උඩ කෝඩ් එක බැලුවම පේනවා print ස්ටේට්මන්ට්ස් දෙකක් දීලා තියෙනවා { } ඇතුලේ.මේක අපි රන් කලොත් අපිට ලැබෙනවා
x is more than y
5
කියලා.ඒ කියන්නේ මෙන්න මේ { } දෙක ඇතුලේ තියෙන ස්ටේට්මන්ට්ස් දෙකම එක පාරම වැඩ කරලා තියෙනවා.ඇයි මම කිව්වේ මුලින්ම { } දෙක ඇතුලේ දාන ස්ටේට්මන්ට්ස් ඕනෑම ගණනක් ලොජිකල් යුනිට්-logical unit  එකක් විදියට වැඩ කරනවා කියලා.බැරි වෙලාවත් ඔයාට ඕන උනත් මේ { } දෙක ඇතුලට දාල තියෙන ස්ටේට්මන්ට්ස් දෙකෙන් එකක් විතරක් වැඩ කරවන්න.මතක තියාගන්න එහෙම කරන්න බෑ.{ } ඇතුලේ තියෙන ස්ටේට්මන්ට්ස් එහෙම වෙන් කරලා වැඩ කරවන්න බෑ.


බලමු අපි තව උදාහරණයක් අරන් මේක තවත් තේරුම් ගන්න.


 හොඳයි.අපි මේක රන් කලාම අපිට ලැබෙනවා මෙන්න මෙහෙම අවුට්පුට් එකක්.



බලමු මේක උනේ කොහොමද කියලා.අපේ { } දෙක ඇතුලේ ස්ටේට්මන්ට්ස් 3 ක් තියෙනවා පේනවා නේද?පොතේ හැටියට මේ ස්ටේට්මන්ට්ස් 3 ම රන් වෙන්න ඕනේ.මොකද මේ 3 ම තියෙන්නේ එකම { } ඇතුලේ.ඒ කියන්නේ එකම ලොජිකල් යුනිට් එකක් විදියටයි වැඩ කරන්නේ.for-ෆෝ ලූප් ගැන දන්නවනේ.දන්නෙ නැත්නම් මෙන්න මෙතනට ගිහින් ඒක බලලා එන්නකෝ.ඒ හන්දා ලූප් එක දුවන හරිය මම කිය කියා ඉන්නෙ නෑ.හැබැයි ඉතින් කියන්න ගත්තම හැම දේම කියවෙනවා.බලමු අපේ ස්ටේට්මන්ට්ස් 3 රන් උනාද කියලා.

x,y මුලින්ම ඩික්ලෙයාර් කරලා තියෙනවා.ඊළඟට මම y ට 20 ඉනිශියලයිස් කරලා තියෙනවා.ෆෝ ලූප් එක ඇතුලේ x වල ආරම්භක අගය 0 කියලා දීල ලූප් ඉටරේට්-iterate වෙන හැම වෙලාවේම x වල අගය එකකින් වැඩි කරන්න කියලා දීල තියෙනවා.ඒ වගේම x වල අගය 10 වෙනකොට ලූප් එක ටර්මිනෙට් වෙන්නත් දීලා තියෙනවා.ඔන්න දැන් බලමු.

--- ලූප් එක දුවන මුල් රවුම ---

කෝඩ්  එක උඩ ඉඳං රන් වීගෙන එනවා.එතකොට yවල අගය 20 යි.ලූප් එක ඇතුලට එනවා.එතකොට x හම්බෙනවා.x වල අගය 0 යි.ඔන්‍න‍ හම්බෙනවා print ස්ටේට්මන්ට්ස් දෙක.දෙකම රන් වෙනවා.ප්‍රින්ට් කරනවා පිලිවෙලින්
This is x: 0
This is y :20
ඔන්න ඊට පස්සේ හම්බෙනවා y වල අගය දෙකකින් අඩු කරන්න කියලා.ලූප් එක ටර්මිනේට් උනේ නෑනේ.ආයෙ කැරකෙනවා ලූප් එක.යනවා උඩට.

--- ලූප් එක දුවන දෙවැනි රවුම ---

ඔන්න  දැන් ලූප් එක දුවන දෙවැනි වටය.x වල අගය එකකින් වැඩි වෙනවා.මොකද x++ තියෙන හන්දා.දැන් x වල අගය 1 යි.y වල අගය කලින් 2 ක් අඩු උනානේ.දැන් 18 යි.ඕන්‍න‍ හම්බෙනවා print ස්ටේට්මන්ට්ස් දෙක.දෙකම රන් වෙනවා.ප්‍රින්ට් කරනවා පිලිවෙලින්
This is x: 0
This is y :20
This is x: 1
This is y :18
ඔන්න ඊට පස්සේ ආයේ හම්බෙනවා y වල අගය දෙකකින් අඩු කරන්න කියලා.අපිට ලැබුන x වල අගය 9 ට වඩා වැඩි නැති හන්දා ලූප් එක ටර්මිනේට් උනේ නෑනේ.ආයෙ කැරකෙනවා ලූප් එක.යනවා උඩට.

--- ලූප් එක දුවන තුන්වැනි රවුම ---

 ඔන්න  දැන් ලූප් එක දුවන තුන්වැනි වටය.x වල අගය ආයේ එකකින් වැඩි වෙනවා.මොකද x++ තියෙන හන්දා.දැන් x වල අගය 2 යි.y වල අගය කලින් ආයේ 2 ක් අඩු උනානේ.දැන් 16යි.ඕන්‍න‍ හම්බෙනවා ආයේ print ස්ටේට්මන්ට්ස් දෙක.දෙකම රන් වෙනවා.ප්‍රින්ට් කරනවා පිලිවෙලින්
This is x: 0
This is y :20
This is x: 1
This is y :18
This is x: 2
This is y :16
 ඔන්න ඊට පස්සේ ආයේ හම්බෙනවා y වල අගය දෙකකින් අඩු කරන්න කියලා.අපිට ලැබුන x වල අගය 9 ට වඩා වැඩි නැති හන්දා ලූප් එක ටර්මිනේට් උනේ නෑනේ.ආයෙ කැරකෙනවා ලූප් එක.යනවා උඩට.x අගය 9 ට වඩා වැඩි උන ගමන් ලූප් එක ටර්මිනෙට් වෙනා.ලූප් එකෙන් ඉවත් වෙනවා.මේන් මෙතඩ් එකෙන් ඉවත් වෙලා ක්ලාස් එකෙන් ඉවත් වෙනවා.

මෙ විදියට අපි දීපු ස්ටේට්මන්ට්ස් 3 ම ලස්සනට වැඩ කරනවා.එකක්වත් වැඩ නොකර රන් නොවී තියෙන්නේ නෑ.මොකද එකම { } දෙකක්ඇතුලේ හන්දා.ඒ කියන්නේ ලොජිකල් උනිට් එකක් විදියටවැඩ කරනවා.

No comments:

Post a Comment