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