16 වන පාඩම(variables scope)
මේ losson එක
ගොඩක්
වැදගත්.
ජාවා
වලදි
එකපාරක් declare කරාම සමහර
අවස්තාවල නැවත
declare කරොත්
compile error එනව.ඒ
error වලක්වගෙන නැවත
declare කරන්න
පුලුවන් මේ
lesson එකේ
දැනුම
තියනවනම්.
ඒ
වගෙම
සමහර
variable declare කරල
තිබුනත් error:
cannot find symbol කියල
error එකක්
එනව.
මේ
error දෙකටම
හේතු
වන
කරුනක්
තමයි
variables scope .
අපි { open කරනවනෙ.ඊලගට
අවසනෙදි } මගින් වහනව.මේ braces
අතරෙ
යම්
දෙයක්
declare කරොත්
use කරන්න
පුලුවන්
{ සහ
} අතරෙදි
පමනයි
කියනෙක
තමයි
සරලම
අදහස.බලමු example
එකක්.
public
class sol
{
public static void main(String
args[])
{
for(int i=0;i<5;i++)
{
System.out.println(i);
}
System.out.println(i);
}
}
ඔයාල
මේ
code එක
compile කරොත් error එකක්
එයි
මන්
කලින්
කියපු .
පේනවද
i declare කරල
තියනව
කියල.නමුත්
ඒ i use කරන්න පුලුවන් for loop එකෙ { සහ } අතර විතරයි.
Red වලින් highlight කරපු
ටික
අයින්
කරල
try කරන්න.එතකොට
එරර්
එක
නැතිවෙනව පෙනෙයි.
ඔයාලට
තේරෙනව
ඇති
i scope එක
තියෙන්නෙ for loop එකෙ { සහ } අතර විතරයි කියල.දැන්
ප්රශ්නෙ
කොහොමද
i වල
අගය
print කරන්නෙ
loop එකෙන්
පිටදි
කියල.
කරන්න
තියෙන්නෙ i for-loop
එකට
කලින්
declare කරනෙක.
public
class sol
{
public static void main(String
args[])
{
int i;
for(i=0;i<5;i++)
{
System.out.println(i);
}
System.out.println(i);
}
}
දැන්
කිසිම
එරර්
එකක්
එන්නෙ
නෑ
නේද?.ඔයාලට
පේනව
ඇති
කලින්
for loop එකෙ for(int i=0;i<5;i++)
කියල
තමයි
යෙදුවෙ
.ඒත්
දැන්
(i=0;i<5;i++) කියල.හේතුව
තමයි i වල අගය for-loop එකට
කලින්
declare කරපු
එක.කලින් I
වල
scope එක for loop එකෙ { සහ } අතර විතරයි.
දැන්
I වල
scope එක main මෙතඩ් එකෙ { සහ }
අතර.ඒ
නිසා
main මෙතඩ් එකෙ { සහ } ඕනම තැනකදි I use කරන්න පුලුවන්,මතක තියාගන්න declare කරපු තැන ඉදන් පහලට කියල.
0
1
2
3
4
5
කියල
output එක
එයි.
I=5 අවස්තාවෙදි
loop එක
ඇතුලට
යන්නෙ
නෑ.පිටින්
තියන
print එකෙන්
තමයි
5 print වෙන්නෙ.
දැන්
බලමු
එකපාරක් declare කරල තවපාරක්
declare කරන්න
පුලුවන් කොහොමද
කියල.
public
class sol
{
public static void main(String
args[])
{
for(int i=0;i<5;i++)
{
System.out.println(i);
}
int i=8;
System.out.println(i);
}
}
මෙතනදි
කිසිම
වරදක්
නැතුව
compile වෙයි.මෙතනත්
scope එකේ
concept එක
යොදාගෙන තියෙනව.
for(int
i=0;i<5;i++) එකේ
I වල
scope එක
ඒකෙ
{} අතර
නමුත්
for-loop එක
ඉවරවෙලා
declare කරපු
I වල
scope එක
එතන
ඉදන්
පහලට
තියෙන්නෙ
main method එක
ඇතුලෙ.ඒ
නිසා
තමයි
error එකක්
නොවෙන්නෙ මෙතනදි.
Output
එක
0
1
2
3
4
8
කියල
එයි.දැන්
තවත්
තෙරුම්ගන්න පහල
code එක
බලන්න.
public
class sol
{
public static void main(String
args[])
{
int i=8;
for(int i=0;i<5;i++)
{
System.out.println(i);
}
System.out.println(i);
}
}
දැන්
error එකක්
එයි.ඔයාලට
තේරෙනව
ඇති
මුලින්ම declare කරල initialize කරල තියන I
වල scope
එක main
මෙතඩ්
එකේ
{} අතර
තියනව
declare කරපු
තැන
ඉදන්.ඒ scope
එක
ඇතුලෙ
තමයි
for-loop එක
තියෙන්නෙත්.ඒ
නිසා
තමයි
නැවත
declare කරල
තියනව
කියල
error එකක්
එන්නෙ.
පහල
code එකෙත්
බලන්න
වැරැද්ද..
public
class sol
{
public static void main(String
args[])
{
{
int
i=5;//scope of i start here
System.out.println(i);
}//scope of i end here
System.out.println(i);//cannot use i
here.
}
}
පහල
example එකත්
බලන්න.ඒකෙදි
නිවරදියි
code එක.
public
class sol
{
public static void main(String
args[])
{
{
int i=5;
{
System.out.println(i);
}
System.out.println(i);
}
}
}
For-loop
ඇතුලෙ
තවත්
For-loop use කරනකොට
නිවැරදිව කරගන්න
පුලුවන් වෙයි
මේ
lesson එකෙන්
පසුව.
ඒ
වගෙම
do-while ,while වලටත්.
ඉදිරියෙදි object oriented concept කරනකොට මේ
දැනුම
වැදගත්
වෙනව.
No comments:
Post a Comment