Monday, June 13, 2016

user ඉන්පුට් ගන්නකොට වරදින තැන්

8 වන පාඩම(input read from user)
Data ටයිප්ස් වල වැලියු user කෙනෙක්ගෙන් read කරන්න තමයි දැන් ලෑස්තිවෙන්නෙ.
ඊට කලින් data ටයිප් එකක් තියනව දැනගන්න.ඒ තමයි Boolean ගැන.මේව define කරන්නෙ මෙහෙම.
boolean b=true;
boolean c=false;
මේ බූලියන් ටයිප්  එකේ තියෙන්නෙ වැලියු 2යි.එක්කො true,නැත්නම් false.

හරි දැන් lesson එකට යමු.
මෙතනදි කරන්නෙ userගෙන් වැලියු read කරනෙක.මන්  කලින් කිව්ව වගේ මේකටත් package එකක් ඉම්පොර්ට් කරගන්න වෙනව.මෙතනදි අපිට Scanner ක්ලාස් එක ඕනි වෙනව.ඒක තියෙන්නෙ util package එකේ.
import java.util.Scanner; මේ විදියට තමයි ඉම්පෝර්ට් කරගන්නෙ.දැන් බලමු කෝඩ් එක.වැදගත්ම දෙයක් මෙතනදි මතක තියාගන්න.මුල්ම පාරට කෝඩ් එක රන් කරනකොට කමෙන්ට් දාල තියල රන් කරන්න.ඒ ඇයි කියල මන් කියන්නම්.
import java.util.Scanner;
public class ReadFromUser
 {
            public static void main(String[] args)
            {         
            Scanner s=new Scanner(System.in);
            String name=s.next();
            //String fullname=s.nextLine();
            long l=s.nextLong();
            float f=s.nextFloat();
            int i=s.nextInt();
            boolean b=s.nextBoolean();
           
            System.out.println("fname is: "+name);
            //System.out.println("full name is: "+fullname);
            System.out.println("long : "+l);
            System.out.println("float : "+f);
            System.out.println("int : "+i);
            System.out.println("bool : "+b);
            }
}
අපි Scanner එකක් හරහා තමයි අපිට ඕන  වැලියු read කරන්නෙ.මෙතනදි මන් ඒක highlight කරල තියනව.string,int,long,float,char,Boolean,double read කරන මෙතඩ් තියනව.
අපි මුලින්ම space,enter කරනේව discard වෙනව.එක අකුරක් හරි ටයිප් කරාට පස්සෙ space,enter කරනේව input එකට බලපානව.
මුලින්ම read කරන්නෙ String එකක්.එතනදි අපිට keybord එකේ ඕනම character ටිකක් දෙන්න පුලුවන්.ඊට පස්සෙ enter key ප්‍රෙස්  කරන්න.මෙතනදි වැදගත්ම දේ තමයි character එක පෙලට ටයිප් කරන්න අතරමැද space නොතිය. Space තියල type කරොත් space වෙනකන් තියන String කොටස විතරයි assign වෙන්නෙ name කියන වේරියබල් එකට.අනෙක් කොටස discard වෙනව ආපහු user ගෙන් read karanne නැත්නම්.මේ කෝඩ් එකේදි ඊලගට read කරන්නෙ long වැලියු එකක්නෙ.එතකොට space එකෙන් පස්සෙ තියන String කොටස assign වෙනව l කියන වේරියබල් එකට.එතකොට exception එකක් වෙනව.ඒ නිසා space නැතුව තනි String එකක් දෙන්න.  මේ මෙතඩ් එක වැඩ කරන්නෙ ඒ විදියට.
import java.util.Scanner;
public class ReadFromUser
 {
            public static void main(String[] args)
            {         
            Scanner s=new Scanner(System.in);
            String name=s.next();
            String fullname=s.nextLine();
           
            System.out.println("fname is: "+name);
            System.out.println("full name is: "+fullname);
            }
}
දැන්   nm fg fgffgf fgfg කියල ඉන්පුට් එක දීල බලන්න.name එකට nm කියන  ටික assign වෙනව.අනෙක් සේරම fullname කියනෙකට.මේ s.nextLine() කියන මෙතඩ් එකේදි.enter key ප්‍රෙස් කරනකන් තියන වැලියු ටික assign වෙනව. String fullname=s.nextLine();කියන ස්ටේට්මන්ට් එක විතරක් පාවිච්චි කරල තේරුම්ගන්න මේ මෙතඩ් එක ගැන.
දැන් ඊලගට තියෙන්නෙ long read කරන මෙතඩ් එක.ඉන්පුට් දෙනකොට මේ ටයිප් වල පරාසය ගැන මතක් කරගන්න.පරාසයට අදාල නොවෙන ඒව assign  කරොත් exception ei.තව පාඩම් දෙක තුනක් ඉදිරියේදි exception ගැන කතාකරමු.
ඊලගට float,ඉන්ට් තියනව.මේ දෙක long read කරන මෙතඩ් එක වගේමනෙ.තේරුම්ගන්න ලේසියි.
ඊලගට තියෙන්නෙ boolean.මේ පාඩම පටන්ගන්නකොට මන් කිව්ව වගෙ ඒ සදහ දෙන්න පුලුවන් අගයන්  විතරක් දෙන්න මතක තියාගන්න.එක්කො true කියල ටයිප් කරල එන්ටර් කරන්න.නැත්නම් false දෙන්න.

මේව රන් කරන්න හොඳම විදිය තමයි එක කොටසක් වැඩ කරන විදිය බලන්න අනෙක්වට කොමෙන්ට් දාල.

ඊලග part එකේදි දාල තියන කමෙන්ට් අයින් කරල රන් කරනකොට  වෙන  දේ ගැන කියන්නම්.

1 comment:

  1. scanner එකක් use කරාම ඒක close කරන්න.
    s.close(); කියල main method එක close කරන } එකට කලින් දෙන්න.
    18 වන lesson එකේ example තියනව.

    ReplyDelete