Page 56 - การโปรแกรมคอมพิวเตอร์ขั้นสูง
P. 56

2-46 การโปรแกรมคอมพิวเตอร์ขั้นสูง

       สำ�หรับ​ข้อ​แตก​ต่าง​ระหว่าง​เมธอด next() กับ​เมธอด nextLine() คือ เมธอด next() จะ​อ่าน​โท​เค็น​เข้า​มา​
โดยแ​ ยกแ​ ต่ล​ ะโ​ทเ​ค็นด​ ้วยอ​ ักขระค​ ั่นท​ ี่เ​ป็นช​ ่องว​ ่าง หรือแ​ ล้วแ​ ต่ม​ ีก​ ารก​ ำ�หนดข​ ึ้นม​ าใ​หม่ แต่เ​มธอด nextLine() จะอ​ ่าน​
โทเ​ค็นเ​ขา้ ม​ าโ​ดยแ​ ยกแ​ ตล​่ ะโ​ทเ​คน​็ ออ​ กจ​ ากก​ ันด​ ว้ ยอ​ กั ขระค​ ัน่ ท​ ีเ่​ปน็ อ​ กั ขระส​ ิน้ ส​ ดุ บ​ รรทดั ซึ่งใ​นร​ ะบบปฏบิ ัตกิ ารว​ นิ โดวส​์
คือ เครื่องหมาย /r/n (ได้จ​ ากก​ ารก​ ด​ปุ่ม Enter ที่แ​ ป้นพ​ ิมพ์) ในร​ ะบบ​ลีนุกซ์ คือ เครื่องหมาย /n เช่น ถ้าป​ ้อน​ค่า​ดังนี้
12 987 ถ้าร​ ับ​ด้วยเ​มธอด next() จะ​ถูกแ​ ยกเ​ป็น 2 โทเ​ค็นห​ รือ​สอง​คำ� คือ 12 กับ 987 เพราะเ​มธอด next() จะ​แยก
โ​ทเ​ค็นด​ ้วย​ช่อง​ว่าง แต่​ถ้าร​ ับ​ด้วยเ​มธอด nextLine() จะ​ถือว่าม​ ี​แค่​โท​เค็นเ​ดียว​หรือไ​ด้ห​ นึ่งค​ ำ�​เท่านั้น คือ “12 987”
เพราะเ​มธอด nextLine() จะ​แยกโ​ท​เค็นด​ ้วย​อักขระส​ ิ้นส​ ุด​บรรทัด​ที่อ​ ยู่ห​ ลัง​เลข​เจ็ด นั่นเอง

4. 	การ​ส่งค​ ่าอ​ าร์กิวเมนตผ์​ ่านท​ างบ​ รรทดั ​คำ�ส​ ั่ง

       ในภ​ าษา​จาวาจ​ ะ​มี​เมธอด main() เป็นเ​มธอด​เริ่มต​ ้น​ใน​การ​ทำ�งานข​ อง​โป​แกร​ ม ซึ่ง​จะ​พบว​ ่าที่​เมธอด main()
นั้น​มีร​ ายการพ​ ารามิเตอร์​ของ​เมธอด​อยู่ด​ ังนี้ public static void main(String args[ ])

       ดัง​นั้น จึง​ทำ�ให้​สามารถ​ส่ง​ค่า​ผ่าน​เข้า​มายัง​เมธอด main() นี้​ได้​เช่น​เดียวกัน​กับ​เมธอด​ทั่ว ๆ ไป ซึ่ง​การ​ส่ง​
ค่า​มายังเ​มธอด main() นี้ จะ​ส่ง​ผ่านท​ างบ​ รรทัด​คำ�​สั่ง (command-line) ในข​ ณะ​ที่​รัน​โปรแกรม

       การ​สง่ ​คา่ ​เขา้ ​มา​นน้ั ​จะ​อย​ใู่ น​รปู ​ของ​สตรงิ ​อารเ์ รย์ (String array) ยดึ ​ตาม​พารามเิ ตอร​ข์ อง main(String args[ ])
ซึ่ง​การ​ใช้​คำ�​สั่ง​เหมือน​กับ​คำ�​สั่ง​ของ​อาร์เรย์​ทั่วไป เช่น ถ้า​ต้องการ​ทราบ​จำ�นวน​ที่​ส่ง​ค่า​เข้า​มายัง​เมธอด main() ให้​ใช้​
คำ�​สั่ง args.length คำ�​สั่ง​นี้​จะแ​ สดง​จำ�นวนท​ ั้งหมด​ที่​มี​การ​ส่ง​ค่าเ​ข้า​มา​ใน​เมธอด main() เป็นต้น

       รปู แ​ บบก​ าร​ส่งค​ ่า
       เนื่องจาก​การ​ส่ง​ค่า​เข้า​มา​นั้น​กระทำ�​ผ่าน​ทาง​บรรทัด​คำ�​สั่ง ซึ่ง​มี​ลักษณะ​คล้าย​กับ​ระบบ​ดอส (DOS) จึง​ต้อง​
เข้าใจร​ ูป​แบบแ​ ละว​ ิธีก​ าร​ส่งค​ ่า​ของ​ภาษาจ​ าวา ซึ่งม​ ี​รูปแ​ บบ ดังนี้

                       java pro_name value1 value2 value3

       โดย
            java 	 คือ คำ�​สั่งท​ ี่ใ​ช้ร​ ัน​โปรแกรม
            pro_name 	คือ ชื่อข​ องโ​ปรแกรม​ที่ต​ ้องการท​ ำ�งาน ซึ่ง​จะ​ต้อง​ผ่านก​ าร​คอม​ไพล์แ​ ล้ว
            value1 value2 value3 คือ ค่าต​ ่างๆ ที่​ต้องการส​ ่ง​เข้า​มายัง​เมธอด main() โดย​แต่ละ​ค่าแ​ ยกจ​ าก​กัน​
                                ด้วย​การ​เว้น​วรรค (white space)

ตัวอย่างท​ ่ี 2.25 การ​ส่งค​ ่า​อาร์กิวเมนต์ผ​ ่าน​ทาง​บรรทัด​ค�ำส​ ั่งข​ อง​โปรแกรมช​ ่ือ Testvar ต้องการส​ ่งค​ ่า 3 ค่า ดังน้ี 10 b
P เม่ือ​อยู่​ท่ี​บรรทัดค​ �ำส​ ั่งต​ ้องพ​ ิมพ์​ค�ำส​ ั่ง​ ดังน้ี

                       java Testvar   10   b   P
   51   52   53   54   55   56   57   58   59   60   61