101
ใบงานที่ 5.2
ค าชี้แจง ให้เขียนโปรแกรมเพื่อแสดงผลดังต่อไปนี้
1. แสดงผลข้อความ Hi my name is Java
2. แสดงผลข้อความ “Hi my name is Java”
3. แสดงผล Hello
How
Are
You
???
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………...
102
ี่
ใบงานท 5.3
ค าชี้แจง ให้เขียนโปรแกรมเพื่อแสดงผลดังต่อไปนี้
1. แสดงผลจ านวนเต็ม 12345678 โดยก าหนดให้มีการแสดงผลทั้งหมด 10 ต าแหน่ง และแสดงผล
จากซ้ายไปขวา
2. แสดงผลเลขทศยม 12345678 โดยก าหนดให้มีการแสดงผลทั้งหมด 12 ต าแหน่ง และไม่ก าหนด
จ านวนทศนิยมมากจากขวามาซ้าย
3. แสดงผลจ านวนเต็ม 12345678 โดยก าหนดให้มีการแสดงผลทั้งหมด 10 ต าแหน่ง และ
ก าหนดให้เป็นทศนิยม 2 ต าแหน่ง
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
103
ค าสั่งควบคุมทิศทางการท างานของโปรแกรม
้
การก าหนดการท างานของโปรแกรมสามารถท าไดโดยการใช้คาสั่งควบคุมทิศทางการท างานของโปรแกรม
ซึ่งมีอยู่ 3 รูปแบบ คือ
1 ค าสั่งควบคุมทิศทางการท างานของโปรแกรมแบบตามล าดับ( Sequence Control)
2 ค าสั่งควบคุมทิศทางการท างานของโปรแกรมแบบมีทางเลือก( Selection Control)
3 ค าสั่งควบคุมทิศทาวงการท างานของโปรแกรมแบบท าซ้ า( Iteration Control Statement )
ค าสั่งควบคุมทิศทางการท างานของโปรแกรมแบบตามล าดับ
ั
เป็นรูปแบบการท างานททุกค าสั่งจะมีการท างานตามล าดบ โดยจะไม่มีการข้ามขั้นตอนใด ๆ ไป แตละ
่
ี่
ค าสั่งจะถูกเรียกใช้งานเพียงครั้งเดียว การท างานของโปรแกรมจะเริ่มจากค าสั่งที่ 1 แล้วจึงเริ่มคาสงที่ 2,3,4… จน
ั่
ครบทุกค าสั่งจึงจบการท างาน
เพื่อท าความเข้าใจค าสั่งควบคุมทิศทางการท างานของโปรแกรมแบบตามล าดับ ให้ท าการสร้าง project
ชื่อ tax เพื่อใช้ในการค านวณภาษีอย่างง่ายขึ้นมาก่อน โดยมีขั้นตอนดังนี้
1.สร้าง project tax
2.สร้าง Java class ชื่อ Tax_Calculator ไว้ใน project Tax
3.สร้าง method ส าหรับค านวณภาษีชื่อ calTax ซึ่งจะท าการรับค่าข้อมูลเงินเดือนผ่านพารามิเตอร์ชนิด float
่
และท าการคืนคาข้อมูลของภาษีที่ค านวณได้ออกมาเป็นข้อมูลชนิด float
4.สร้าง Java main class ชื่อ Tax1 ไว้ใน project Tax เพื่อเรียกใช้ class Tax_Calculator เมื่อท าการสร้าง
project Tax เสร็จเรียบร้อยแล้วจะมีลักษณะดังภาพ
104
ใน project Tax จะประกอบไปด้วย Java class อยู่ 2 class
คือTax1 ซึ่งจะมีJava main class ส าหรับเรียกใช้งาน class Tax_Calculator และ class Tax_Calculator ซึ่ง
ใช้สาหรับค านวณภาษี
ส าหรับ class Tax_Calculator สามารถอธิบายได้ดังนี้
public class Tax_Calculator เป็นการประกาศclass ชื่อ Tax_Calculator
public float CalTax(float s) เป็นการประกาศmethod ชื่อ calTax()เพื่อใช้ในการค านวณภาษีโดยรับค่าข้อมูล
เงินเดือนผ่านพารามิเตอร์แปร s ซึ่งเป็นข้อมูลชนิด float และท าการคืนค่าภาษีที่คานวณได้ออกมาเป็นข้อมูลชนิด
float
ู
ี่
return 0.01f*s; คืนค่าภาษีทค านวณได้ออกมาเป็นข้อมูลชนิด float โดยค านวณจาก 0.01 คณกับค่าตัวแปร s
105
้
ส าหรับ class Tax1 สามารถอธิบายไดดังนี้
public class Tax1 เป็นการประกาศ class ชื่อTax1
Scanner scan = new Scanner(System.in); ประกาศ Object scanner จากคลาส Scanner เพิ่อใช้ในการ
รับข้อมูล
System.Out.print(Enter salary here); แสดงผลข้อความ Enter salary here และให้ท าการใส่ข้อมูล
เงินเดือน
float salary = scan.nextFloat(); รับข้อมูลเงินเดือนเป็นข้อมูลชนิด float ด้วย method nexFloat()และ
เก็บค่าไว้ในตัวแปรsalary
Tax_Calculator tax = new Tax_Calculator(); ประกาศ Object tax จาก class Tax_Calculator
float result = tax.calTax(salary); เรียกใช้ method calTax () โดยส่งค่าตัวแปร salary และเก็บค่าผลลัพธ์
ที่ได้ไว้ในตัวแปร result
System.out.println(tax = + result); แสดงผลข้อมูลภาษีเมื่อท าการรันโปรแกรมจะได้ผลดังรูป
106
ใบงานที่5.4
ี่
ค าชี้แจง เขียนโปรแกรมเพื่อค านวณเงินโบนัสที่จะได้รับโดยก าหนดให้โบนัสทจะได้รับค่าเท่ากับ 10%ของเงินเดือน
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
107
ค าสั่งควบคุมทิศทางการท างานของโปรแกรมแบบมีทางเลือก
ิ
เป็นค าสั่งควบคุมที่จะตรวจสอบเงื่อนไขของค าสั่งก่อนการท างานเพื่อใช้ในการตัดสินใจเลือกทศทางของ
การท างานในบางครั้งอาจมีการข้ามการท างานของค าสั่งบางชุดไปค าสั่งควบคุมแบบมีทางเลือกสามารถแบ่งได้ 4
ค าสั่ง คือ ค าสั่ง if, ค าสั่ง if....else,ค าสั่ง nested if และค าสั่ง switch
ค าสั่ง if: ค าสั่งควบคุมให้โปรแกรมท างานหรือไม่ท างานในชุดค าสั่งที่ก าหนดเป็นค าสั่งควบคุมที่ก าหนดให้
โปรแกรมท างานหรือไม่ท างานในชุดค าสั่งที่ก าหนดโดยจะตรวจสอบจากคาความจริงของนิพจน์ที่ก าหนดหากค่า
่
้
ความจริงของนิพจน์เป็นจริง (true) โปรแกรมจะท างานตามชุดค าสั่งที่อยู่ภายใตค าสั่ง lf หากค่าความจริงของ
นิพจน์เป็นเท็จ(false)โปรแกรมจะข้ามไปท างานคาสั่งอื่นต่อไป
้
ในการศึกษาขั้นตอนการท างานของโปรแกรมที่ใชค าสั่งควบคุมแบบมีทางเลือกให้ท าการเขียนโปรแกรม
ตัวอย่างซึ่งมีลักษณะดังต่อไปนี้
1.สร้าง project lf_Statement เพื่อใชในการศึกษาโดยในตัวอย่างนี้จะเป็นการตรวจสอบอายุของ
้
ผู้ใช้งานหากผใช้งานมีอายุต่ ากว่า 18 ปีจะไม่สามารถใช้งานได ้
ู้
2.สร้าง main class lf_Statement ไว้ใน project lf_Statement เพื่อใช้ในการตรวจสอบอายุลักษณะ
ของ code ที่ได้มีดังนี้
108
้
ส าหรับ class lf_Statement สามารถอธิบายไดดังนี้
importjava.utilScanner; เป็นการเรียกใช้งาน java utility ชื่อ Scanner เพื่อใช้ในการรับข้อมูลจากผู้ใช ้
public class lf_Statement ประกาศ class ชื่อ lf_Statement
int age; ประกาศด้วยตัวแปร age โดยก าหนดให้เป็นข้อมูลชนิดตัวเลขจานวนเต็ม
Scanner scan = new Scanner(System.in); ประกาศ Objectscanner จากคลาส Scanner เพื่อใช้ในการรับ
ข้อมูล
System.out.print( please Enter your age here ); แสดงผลข้อความเพื่อให้ผู้ใช้ท าการใส่อายุ
age = scan.nex tlnt(); รับข้อมูลอายุโดยใช้ method nextlnt() และเก็บค่าไว้ในตัวแปรage
่
if (age <18){ตรวจสอบเงื่อนไขของอายุหากพบว่าผู้ใช้มีอายุต่ ากว่าหากพบว่าผใช้มีอายุตากว่า 18 ปีจะแสดง
ู้
่
ุ
ข้อความที่ก าหนดหากผู้ใช้มีอายุตั้งแต18 ปีขึ้นไปจะข้ามไปท าชดค าสั่งถัดไป
System.out.println( User is less than 18);
System.out.println( Access denied);
}
if (age >=18){ ตรวจสอบเงื่อนไขของอายุหากพบว่าผู้ใช้มีอายุ 18ปีขึ้นไปจะแสดงข้อความที่ก าหนด
System.out.println( User is 18 or older);
System.out.println( Access granted );
}
เมื่อท าการรันโปรแกรมจะได้ผลดังรูป
กรณีที่ผู้ใช้อายุตากว่า 18 ปี
่
109
กรณีผู้ใช้อายุ 18 ปีขึ้นไป
110
ใบงานที่ 5.5
ค าชี้แจง ท าการเขียนโปรแกรมเพื่อใช้ในการคิดเกรดของวิชาคอมพิวเตอร์โดยก าหนดให้
ตั้งแต่ 80 คะแนนขึ้นไปเกรด A
คะแนน 70-79 เกรด B
คะแนน 60-69 เกรด C
คะแนน 50-59 เกรด D
ต่ ากว่า 50 เกรด F
ก าหนดรูปแบบการท างานของโปรแกรมดังนี้
โปรแกรมท าการรับข้อมูลคะแนนจากผู้ใช้โดยให้คะแนนเป็นข้อมูลชนิดเลขจานวนเต็ม
แสดงผลของเกรดที่ได้พร้อมทั้งข้อความ
กรณีที่ได้เกรด A ให้แสดงผล เกรด A ดีมาก
กรณีที่ได้เกรด B ให้แสดงผล เกรด B ดี
กรณีที่ได้เกรด C ให้แสดงผล เกรด C ปานกลาง
กรณีที่ได้เกรด D ให้แสดงผล เกรด D แย่
กรณีที่ได้เกรด F ให้แสดงผล เกรด F ต้องปรับปรุง
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
111
ั่
ค าสั่งlf...else : ค าสงควบคุมให้โปรแกรมเลือกท างานหนึ่งชุดค าสั่งใดค าสั่งหนึ่งจาก 2 ทางเลือก
เป็นค าสั่งควบคุมให้โปรแกรมเมอร์ทางานในชุดค าสั่งจาก 2 ทางเลือก มึงเงื่อนไขในการเลือกนั้นจะ
เรียกค่าความจริงของรูปที่ก าหนดหากนิพจน์ที่ก าหนดมีค่าความจริงเป็น(true) โปรแกรมฉันอยากท างานตาม
้
ชุดค าสั่งที่อยู่ข้างใตค าสั่ง lf หากค่านิพจน์ที่ก าหนดมีค่าความจริงเป็นเท็จ (false) โปรแกรมจะเลือกท างานตาม
ค าสั่งที่อยู่ภายใต้คาสั่ง else
ในการศึกษาการท างานของค าสั่งควบคุมlf...else งั้นเราจะใช้โปรแกรม lf_Statement ที่ได้สร้างไว้
ก่อนหน้าน ามาดัดแปลงเพื่อใช้ร่วมกับคาสั่งlf...else โดยลักษณะของโปรแกรมที่ได้มีดังนี้
สิ่งที่แตกต่างกันระหว่างตัวอย่างค าสั่งควบคุมlf และตัวอย่างค าสั่งควบคุม lf...else คือมีการใช้งานค าสั่งlf...else
แทนการใช้งานชุดคาสั่ง lf 2ชุด ในตัวยาก่อนหน้าอย่างไรก็ดีผลที่ได้จากการน าโปรแกรมจะได้ทเหมือนกัน
ี่
112
็
กรณีที่ผู้ใช้งานมีอายุต่ ากว่า 18 ปีจะท าให้ค่าความจริงของนิพจน์ age <18 มีค่าความจริงเป(true)โปรแกรมจะ
ท างานตามชุดค าสั่งที่อยู่ภายใตค าสั่งif
้
็
ู้
กรณีที่ผใช้เงินมีอายุต่ ากว่า 18 ปีขึ้นไปจะท าให้คาความจริงของนิพจน์ age <18 มีความจริงเป็นเทจ(false)
่
้
ุ
โปรแกรมจะเลือกท างานตามชดค าสั่งที่อยู่ภายใตค าสั่งelse
113
ใบงานที่ 5.6
ี่
ค าชี้แจง ท าการแก้ไขโปรแกรมที่เขียนขึ้นในใบงานท5.5 โดยก าหนดให้ใช้คาสั่งควบคุม lf...else ในการคิดเกรด
ี่
แทนการใช้คาสั่งควบคุม lf โดยก าหนดเงื่อนไขในการคิดเกณฑ์และการแสดงผลรูปแบบเดียวกันกับใบงานท5.5
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
114
ค าสั่งnested if: ค าสั่งควบคุมให้โปรแกรมเลือกทางานในทุกค าซ้ าได้ชุดค าสั่งรู้จักหลายทางเลือก
ค าสั่ง nested if หรือ if...else if เป็นค าสั่งควบคมให้โปรแกรมนวดท างานชุดค าสั่งโดยที่แต่ละทางเลือกจะมีการ
ุ
ก าหนดนิพจน์เอาไว้ด้วยในการเลือกท างานนั้นโปรแกรมจะตรวจสอบค่าความจริงของแต่ละนิพจน์หาค่าความจริง
้
็
ของนิพจน์มีค่าเป็นจริง(true)ก็จะท างานตามชุดคาสั่งภายใตทางเลือกนั้นหาค่าความจริงเป็นเทจ(false) จะเข้าไป
ตรวจสอบนิพจน์ถัดไปในการศึกษาการท างานของค าสั่งควบคุม nested lf นั้นเราจะใช้โปรแกรม lf_Statement
ที่ได้สร้างไว้ก่อนหน้าน ามาดัดแปลงเพื่อใช้ร่วมกับค าสั่ง lf...else if เพื่อเพิ่มเงื่อนไขในการแสดงผลดังนี้
115
้
ส าหรับโปรแกรมที่ทาการดัดแปลงเพื่อใชค าสั่งควบคุมแบบ nested if จะมีการท างานดังนี้
หากอายุของผู้ใช้งานต่ ากว่า 18 ปีค่าความจริงของนิพจน์ age < 18 จะมีค่าเป็น true โปรแกรมจะ
เรียกท างานตามที่คาสั่งโดยจะแสดงผลข้อความ User is less than 18ดังภาพ
่
หากอายุของผู้ใช้งานอยู่ตั้งแต่ 18-29 ปี จะทาให้คาความจริงของนิพจน์ age <18มีค่าเป็น false
โปรแกรมจะเพิ่มชุดค าสั่งภาคใตในโพสต์นั้นไปและท าการตรวจสอบนิพจน์ถัดไปคือ age >=18 && age <30
้
เมื่อตรวจสอบแล้วจะพบว่ามีค่าความจริงเป็นtrue โปรแกรมจะเลือกท างานภายใต้ชุดค าสั่งนี้โดยจะแสดงผลดัง
รูป
่
ส าหรับช่วงอายุอื่นๆนั้นจะมีเงื่อนไขในการตรวจสอบผานเช่นเดียวกันโดยผลที่ได้จะมีดังนี้
116
และ
ค าสั่ง switch: ค าสั่งควบคุมให้โปรแกรมท างานในชุดค าสั่งได้ชุดหนึ่งจากหลายทางเลือก
่
ค าสั่ง switch เป็นค าสั่งควบคุมให้ผท างานในชุดค าสั่งหรือแตละครั้งจะมีการเมื่อโปรแกรมท าการตรวจและพบว่า
ู้
ทางเลือกใดมีเงื่อนไขเป็นจริง (true) จะท างานตามค าสั่งข้างในทั้งลูกนั้นโดยมีรูปแบบค าสั่งดังนี้
Switch (expression) {
case list _Value _1;
break;
case list _value _2;
statement_2;
break;
cas list_value _n:
statement_n;
break;
default:
statement:
}
โดยที่ expression เป็นหนี้พวกที่ต้องตรวจสอบค่าว่าตรงกับ list_value ใดเพื่อจะได้ท างานตาม
ชุดค าสั่งภายใต list_value นั้น
้
้
list_value เป็นค่าข้อมูลที่ใช้ตรวจสอบกับ expression ไม่สามารถใชค่าของ list_valueเป็นค่าข้อมูลท ี่
ใช้ตรวจสอบกับ expression ไม่สามารถใช้คาของ list_value เป็นช่วงของข้อมูลได้เช่น ไม่สามารถใช ้
่
list_value >=5ได ้
117
ี่
Statements _n เป็นชุดค าสั่งทจะท างานเมื่อค่าของ list_value มีค่าเท่ากับ expression
่
่
Statements เป็นชุดค าสั่งที่จะท างานเมื่อไม่มี list_value ใดมีคาเทากับ expression
ุ
ั่
break เป็นค าสงที่ใช้หยุดการทางานและออกจากบล็อกของชุดคาสั่ง switch แต่จะไปท างานที่ชดค าสั่ง
default ต่อไป
้
ตัวอย่างคงโปรแกรมที่มีการใชค าสั่งควบคุม switch มีดังต่อไปนี้
118
โปรแกรมตัวอย่างสามารถอธิบายได้ดังนี้
Public class Unit10 ประกาศ class ชื่อ Unit10
Public static void main(String[ ] args) ประกาศ main class เพื่อเรียกใช้งานค าสั่ง
ควบคุม switch
int month = 13 ประกาศตัวแปร month โดยก าหนดให้เป็นข้อมูลชนิด
จ านวนเต็ม และมีค่าเท่ากับ 13
String month String ประกาศตัวแปร month String โดยก าหนดให้เป็นข้อมูล
ชนิดข้อความ
Switch (month) เรียกใช้งานค าสั่งควบคุม switch โดยมี expression ที่ใชใน
้
การเปรียบเทียบเป็นตัวแปร month
case 1:monthString = January ท าการเปรียบเทียบคาของตัวแปร month ว่ามีค่าเท่ากับ 1
่
หรือไม่
่
case 2: month string = February ท าการเปรียบเทียบคาของตัวแปร month ว่ามีค่าเท่ากับ 2
หรือไม่หากมีค่าเท่ากับ 2 ให้ท าการก าหนดค่าตัวแปร
mount Sting เป็น March
default: month String= invalid month ในกรณีที่ตรวจสอบแล้วไม่มีค่าใดตรงกับค่าของ
expression month จะมีท าการก าหนดคาของตวแปร
ั
่
months ting เป็น invalid month
ั
System.Out.println (month string) ค าสั่งแสดงผลทางหน้าจอโดยให้แสดงผลของตวแปร
month string ที่จากการใช้คาสั่ง switch
เนื่องจากในตัวอย่างนี้ได้มีการก าหนดให้ค่าของ month = 13 ดังนั้นเมื่อรันโปรแกรมและเรียบเทียบค่า
ของ expression month กับ case ต่างๆ จะพบว่าไม่ตรงกับ case ใดเลย โปรแกรมจึงท างานตามชุดค าสั่ง
ภายใต้คาสั่ง default นั้นคือ ก าหนดค่าของตัวแปร month string เป็น Invalid month และแสดงผลออกทาง
หน้าจอ
119
ใบงานที่ 5.7
้
ค าชี้แจง เขียนโปรแกรมโดยใชค าสั่งควบคุมในการเลือกเมนูโดยมีข้อก าหนดดังนี้
1. กด 1 ให้แสดงผลเมนู เมนูหลัก ทางหน้าจอ
2. กด 2 ให้แสดงผลเมนู การตั้งค่า ทางหน้าจอ
3. กด 3 ให้แสดงผลเมนู ระดับเสียง ทางหน้าจอ
4. กด 4 ให้แสดงผลเมนู อื่นๆ ทางหน้าจอ
5. กรณีที่กดเลขอื่นๆ ที่ใช่ 1,2,3,4 ให้แสดงผล กรุณาเลือกเมนูให้ถูกต้อง
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
120
ค าสั่งควบคุมทิศทางการท างานของโปรแกรมแบบท าซ้ า
ุ
เป็นค าสั่งควบคุมที่ก าหนดรูปแบบการท างานของโปรแกรมแบบวนลูป(loop) โดยจะมีการทาซ้ าชดคาสง ั่
ั่
ื
เดิมจนกว่าเงื่อนไขที่ก าหนดไว้จะเป็นเท็จจึงจะออกจากลูปค าสั่งรูปแบบของค าสั่งควบคุมแบบท าซ้ ามี 3 คาสง คอ
ค าสั่งWhile,ค าสง do...while และค าสั่ง for
ั่
ค าสั่ง while ค าสั่งควบคุมแบบท าซ้ าด้วยจ านวนรอบที่ไม่แน่นอน
คุณค าสั่งควบคุมแบบท าซ้ าที่มีการตรวจสอบเงื่อนไขของนิพจน์ก่อนการทางานตามชดคาสงทอยู่ภายใน
ุ
ี่
ั่
ู
ั่
่
่
ุ
ู
ุ
ลปทกครั้งโดยโปรแกรมจะทางานตามชดคาสงภายในลปก็ตอเมื่อคาความจริงของนิพจน์เป็น true เมื่อทางาน
ตามชุดค าสั่งเสร็จสิ้น จะมีการตรวจสอบค่าความจริงของนิพจน์อีกครั้งและจะหยุดการท างานเมื่อค่าความจริงของ
นิพจน์เป็น false โดยโปรแกรมจะออกจากลูปไปท างานที่ค าสั่งถัดไป รูปแบบของค าสั่ง while มีดังนี้
while (Boolean_expression){
statements;
}
โดยที่ Boolean_expression คืนนี้พจน์ที่มีค่าความจริงทางตรรกศาสตร์ และจะมีการตรวจสอบคาความจริง
่
ก่อนการท างานตามชุดค าสั่งที่อยู่ภายในลปทุกครั้ง
ู
ี่
statements คือชุดค าสั่งทต้องการให้มีการท าซ้ าตัวอย่างโปรแกรมที่มีการใช้ค าสั่งควบคุมwhile เพื่อค านวณ
ผลรวมของเลข 1-100 มีลักษณะดังนี้
121
สามารถอธิบายโปรแกรมได้ดังนี้
่
int i = 1, sum = 0 ; ประกาศตัวแปร i เป็นข้อมูลชนิด integer และมีค่าเทากับ 1 เพื่อใช้เป็นตัวนับและ
ประกาศตัวแปร sum เป็นข้อมูลชนิด integer และมีค่าเท่ากับ 0 เพื่อใช้เก็บคาผลรวม
่
while (i<=100) เรียกใช้งานการวนลูปด้วยค าสั่ง while โดยก าหนดนิพจน์เงื่อนไขให้ตรวจสอบค่าของ
ตัวแปร i ว่ามีค่าน้อยกว่าหรือเท่ากับ 100 หรือไม่
sum += i; น าค่าของ i บวกด้วยค่าของ sum และเก็บผลรวมไว้ในตัวแปร sum
i++ เพิ่มค่าของตัวแปร i ขึ้น 1 ค่า
System.Out.println ( summation of 1 to 100 = +sum ); แสดงผลรวมที่ได้ทั้งหน้าจอเมื่อท าการรัน
โปรแกรมจะได้ผลดังรูป
ค าสั่ง do...while:ค าสั่งควบคุมแบบท าซ้ าโดยทาอย่างน้อย 1 รอบ
เป็นค าสั่งควบคุมแบบท าซ้ าที่มีลักษณะคล้ายกับคาสั่ง while แต่จะต่างกันที่ค าสั่ง do...while จะมีการท างาน
ตามชุดค าสั่งอย่างน้อย 1 รอบก่อนที่จะท าการตรวจสอบคาความจริงของนิพจน์หลังค าสั่ง while เงื่อนไขในการ
่
วนลูปจะมีลักษณะเดียวกันกับของค าสั่งwhile รูปแบบของค าสั่ง do...while มีดังนี้
do {
statements;
} while (boolean_expression);
ตัวอย่างโปรแกรมที่มีการใช้ค าสงควบคุม do...while เพื่อแสดงผลข้อความจ านวนลูปที่มีการวน
ั่
122
สามารถอธิบายโปรแกรมได้ดังนี้
intloopVal = 0; ประกาศตัวแปร loopVal เป็นข้อมูลชนิด integer และมีค่าเท่ากับ 0
เพื่อใช้ในการนับรอบการวนลูป
do { เรียกใช้ค าสั่ง do...while
System.out.println ( Loop number + LoopVal); แสดงผลข้อความ Loop number + รอบการวนลูป
loopVal++; ท าการเพิ่มค่าของ loopVal ขึ้น 1 ค่า
}while (loopVal<10); ท าการวนลูปจนกว่าค่าของ loopVal จะมีค่ามากว่า 9 เมื่อท าการรัน
โปรแกรมจะได้ผลดังรูป
ค าสั่ง for : ค าสั่งควบคุมแบบท าซ้ าด้วยจ านวนรอบที่แน่นอน
เป็นค าสั่งควบคุมแบบท าซ้ าใช้เมื่อทราบจ านวนครั้งของการท าซ้ าที่แน่นอนโดยจะมีการตรวจสอบเงื่อนไข
ุ
่
ที่เป็นนิพจน์ทางตรรกศาสตร์ก่อนการท างานตามชุดค าสั่งภายในลูกก่อนทกครั้งและจะทางานเมื่อวานนี้พจน์มีคา
ุ
ความจริงเป็น true ค าสั่ง for จะมีการเพิ่มหรือลดค่าตัวแปรควบคุมตามค าสั่งที่ก าหนดไว้เมื่อทางานตามชดคาสง
ั่
ภายในรูปเสร็จสนและทาการตรวจสอบคาความจริงของนิพนธ์อีกครั้งโปรแกรมจะหยุดทางานเมื่อนิพจน์มีคา
่
่
ิ้
ความจริงเป็น false รูปแบบของค าสั่ง for มีดังนี้
for (control_variable = value; boolean_expression; increment or decrement){
statements;
}
123
โดยท ี่
control_variable คือตัวแปลควบคุมจ านวนครั้งของการท าซ้ าเป็นข้อมูลชนิด integer
value คือค่าเริ่มต้นของตัวแปรควบคุม
้
่
Boolean_expression คือนิพจน์เงื่อนไขทางตรรกศาสตร์ที่ใชส าหรับตรวจสอบคาความจริง
ก่อนการท างานตามชุดค าสั่งภายในลูป
increment or decrement คือค าสั่งก าหนดการเพิ่มหรือลดคาของตัวแปรควบคุม
่
statements คือชุดค าสั่งสาหรับการท าซ้ า
ตัวอย่างโปรแกรมที่มีการใช้ค าสั่งควบคุมfor เพื่อแสดงผลข้อความจานวนลูปที่มีการวน
สามารถอธิบายโปรแกรมได้ดังนี้
in loopVal; ตัวแปร loopVal เป็นข้อมูลชนิดinteger เพื่อใช้ในการนับจ านวนดลูป
int end_value = 15; ประกาศตัวแปร end_value เป็นข้อมูลชนิด integer เพื่อใช้ก าหนดจ านวน
รอบในการวนลูป
For (loopVal = 0; loopVal <end_value; loopVal++) เรียกใช้ค าสั่ง for โดยก าหนดค่าเริ่มตนของตัวแปร
้
ควบคุมเป็น 0 นิพจน์ที่ใช้ในการตรวจสอบเงื่อนไขคือโปรแกรมจะท างานเมื่อค่าของตัวแปรควบคุม loopVal มีค่า
น้อยกว่าตัวแปร end_value, ก าหนดให้เพิ่มค่าของตัวแปรควบคม loopVal ขึ้น 1 ค่า
ุ
System.out.println ( “Loop value = “+ loopVal); แสดงผลจ านวนการวนลูปทางหน้าจอ
124
เมื่อท าการรันโปรแกรมจะได้ผลดังรูป
125
แบบประเมินผลการเรียนรู้หน่วยที่ 5
ตอนที่ 1 จงตอบค าถามต่อไปนี้ให้สมบูรณ ์
1. จงอธิบายรูปแบบการประกาศคลาสดังนี้
[modifier] class ClassName {
[AttributeName]
[MethodName]
}
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………….
2.จงอธิบายรูปแบบของการประกาศ attribute ดังนี้
[modifier] data Type AttributeName;
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
126
3.จากรูปแบบต่อไปนี้เป็นการประกาศเกี่ยวกับเรื่องใดจงอธิบาย
[modifier]return_typeMethodName ([parameter]{
[method_body]
returnvarValue;
}
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………..
4.จงบอกกฎการตั้งชื่อตัวแปร
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………….
5.จงบอกข้อแตกต่างระหว่าง method println () และ print()
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
127
ี่
ตอนท2 จงเลือกคาตอบที่ถูกต้องเพียงข้อเดียว
1. การท างานของโปรแกรมภาษาจาวาสามารถทางานได้กี่รูปแบบ
ก. 1รูปแบบ
ข. 2รูปแบบ
ค. 3รูปแบบ
ง. 4 รูปแบบ
รูปภาพต่อไปนี้ใช้ตอบคาถามข้อ 2-6
2. หมายเลขใดเป็นส่วนของชื่อ class
ก.1 ข.2
ค.3. ง.4
3. ข้อใดเป็นหมายเหตุของโปรแกรม
ก.1. ข.2
ค.3. ง.4
128
4. ส่วนชื่อของ package คือข้อใด
ก.1. ข.2
ค.3. ง.4
5. หมายเลขใดคือส่วนของโปรแกรมหลัก
ก.1. ข.2
ค.3. ง.4
6. ส่วนที่เป็นข้อความสีน้ าเงินหมายถึงข้อใด
ก.หมายเหต ุ
ข.คาสงวน
ค.ค าเฉพาะ
ง.ค าสั่ง
7. ข้อมูลประเภทshort มีการใช้จานวนบิตจ านวนเท่าใด
ก.8. ข.16
ค.32. ง.64
8.จากค าสั่งนี้เป็นการประกาศตัวแปรใด
int OOP = 25;
ก.int
ข.OOP
ค.=
ง.25;
9. char c = g เป็นการประกาศตัวแปรใด
ก.ตัวเลข. ข.ตัวอักษร
ค.รูปภาพ. ง.ฐานข้อมูล
10. ข้อใดหมายถึงReserved Words
ุ
ก.หมายเหต ข.คาสงวน
ค.ค าเฉพาะ ง.ค าสั่ง
129
ี่
ใบงานท5.8
ค าชี้แจง เขียนโปรแกรมค านวณกันแลกเงินด้วยรับข้อมูลจานวนวันที่ต้องการแรกจากแป้นพิมพ์และก าหนดให้
แลกเป็นเหรียญสิบบาทกับเหรียญบาทเทานั้น
่
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
130
ี่
ใบงานท5.9
ค าชี้แจง เขียนโปรแกรมส าหรับค านวณค่าที่พักโดยมีเงื่อนไขคือถ้ามีผู้เข้าพักเกิน 5 คนผู้เข้าพักทเกินจะได้รับ
ี่
่
ส่วนลดคนละ 15% ของค่าที่พักปกติก าหนดให้รับข้อมูลคาที่พักปกติจานวนผู้เข้าพักและแสดงผลค่าที่พักทั้งหมด
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
131
ี่
ใบงานท5.10
็
ค าชี้แจง เขียนโปรแกรมค านวณหาคะแนนรวมและเกรดของนักเรียนโดยก าหนดให้มีการแสดงผลเปนชื่อนักเรียน
คะแนนรวมและเกรดของนักเรียนโดยใช้เกณฑ์ในการค านวณเกรดดังนี้
คะแนนรวมตั้งแต่ 80 คะแนนขึ้นไป จะได้เกรด A
คะแนนรวม 70-79 คะแนน จะได้เกรด B
คะแนนรวม 60-69 คะแนน จะได้เกรด C
คะแนนรวม 50-59 คะแนน จะได้เกรด D
คะแนนรวมต่ ากว่า 50 คะแนนจะได้เกรด F
และก าหนดให้สร้างคลาสคะแนน (Score)ที่มี method ดังนี้
method ส าหรับค านวณคะแนนรวม (calScore)โดยคิดจากคะแนนเก็บและคะแนนสอบคืนค่าเป็นข้อมูล
ชนิด float
method ส าหรับค านวณเกรด (calGrade) คิดจากคะแนนรวมตามเกณฑ์ที่ก าหนดคืนค่าเปนข้อมูลชนิด
็
char
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
132
แนวคิด
ภาษา java เป็นภาษาส าหรับการเขียนโปแกรมทสนับสนุนให้แบ่งการท างานโปรแกรมออกเป็นการ
ี่
ท างานย่อยๆ ที่เป็นอิสระจากกัน โดยเน้นสร้าง class, attribute และ method ส าหรับใชในการทางานอย่างใด
้
อย่างหนึ่งซึ่งท าให้โปรแกรมมีความชัดเจน สามารถเปลี่ยนแปลงเเละแก้ไขได้ง่าย อีกทั้งยังสามารถน ากับมาใชใหม่
้
ได้ นอกจากนี้ในการเขยนโปรแกรมใดๆ ก็ตาม ย่อมมีโอกาสเกิดข้อผิดพลาดขึ้นได้เสมอ ดังนั้นวิธีการรับมือกับ
ี
ความผิดพลาดจากการท างานของโปรแกรมจึงมีความส าคัญเป็นอย่างยิ่ง
เนื้อหาในหน่วยนี้จะอธิบายเกี่ยวกับส่วนประกอบของโปรแกรมที่เขียนขึ้นเมื่อท างานอย่างใด
อย่างหนึ่งโดยเฉพาะ และการจัดการกับข้อผิดพลาดที่เกิดขึ้นจากการท างานของโปรแกรมคือ
รายละเอียดของ Method Constructor และ Excption
สาระการเรียนรู้
1. Method
2. Constructor
3. Exception
ผลการเรียนรู้ที่คาดหวัง
1.อธิบาย และใช Method ได ้
้
2.อธิบาย และใช Constructor ได ้
้
้
3.อธิบาย และใช Exception ได ้
133
Method
ี่
Method คือ กลุ่มค าสั่งทถูกก าหนดขึ้นเพื่อท างานที่เฉพาะเจาะจง โดยสามารถเปรียบได้กับโปรแกรมย่อย หรือ
Function ในการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) ซึ่ง method นั้นจะถือเป็น
สมาชิกของ class และมีรูปแบบในการประกาศ method ดังนี้
[modifier] return_type MethodName ([parameter]) {
[method_body]
return varVelue;
}
สามารถอธิบายได้ดังนี้
้
modified คือ keyword ที่ใชในการก าหนดการเข้าถึง method
return_type คือ การก าหนดการคืนค่าของข้อมูลจาก method
MethodName คือ ชอของ method
ื่
parameter คือ ตัวแปรที่ใชในการรับข้อมูล
้
method_body คือ ชุดค าสั่งสาหรับการท างานของ method
ี่
varValue คือ ค่าทต้องการให้ method ส่งคืน
เมื่อดูจากรูปแบบการประกาศ method แล้ว เราสามารถแบ่งการเรียกใช้งาน method ได้เป็น 4 รูปแบบคือ
1. method ไม่มีการปรับค่า parameter และไม่มีการคืนค่า parameter
2. method ไม่มีการปรับค่า parameter แต่ไม่มีการคืนค่า parameter
3. method ไม่มีการปรับค่า parameter แต่มีการคืนค่า parameter
4. method มีทั้งการปรับค่าและการคืนค่า parameter
กรณี method ไม่มีการปรับค่า parameter และไท่มีการคืนค่า parameter
จะมีรูปแบบการเรียกใช้งานดังนี้
ObjectName.MethodName ();
โดยที่ ObjectName คือ ชื่อของ Objec
MethodMame คือ ชื่อของ method ที่เรียกใช ้
134
ในการศึกษาเกี่ยวกับ method ที่ไม่มีการปรับค่า parameter และไม่มีการคืนค่า parameter นั้นสามารถศึกษา
ได้จากโปรแกรมตัวอย่างต่อไปนี้
ท าการสร้าง class Fee เพื่อใช้ในการค านวณค่าโดยสารรถแท็กซี่ ซึ่งสามารถอธิบายได้ดังนี้
public class Fee คือ การประกาศ class ชื่อ Fee
public int s คือการประกาศตัวแปร s เป็นข้อมูลชนิด integer
public float t คือ การท าตัวแปร t เป็นข้อมูลชนิด float
public void calFee() คือ การสร้าง method ชื่อ calFee() เพื่อค านวณและแสดงผลค่าโดยสาร
float total = 35 +8*s + 2*t คือ การประกาศตัวแปร total เพื่อใช้ในการเก็บค่าโดยสารที่คานวณได ้
สร้าง main class ชื่อ Fee_NoParameter เพื่อเรียกใช้ method calFee() ในการค านวณค่าโดยสาร
โดยสามารถอธิบายได้ดังนี
public class Fee_NoParameter คือ การประกาศ class ชื่อ Fee_NoParameter
Fee no_prm_fee = new Fee() คือ การสร้าง object no_prm_feeจาก class Fee
no_prm_fre.s = 30 คือ การก าหนดคา attribute s = 30
่
no_prm_fee.t = 22.5f คือ การก าหนดคา attribute t =22.5
่
135
้
no_prm_fee.calFee() คือการเรียกใช method calFee(). โดยไม่มีการส่งค่า argument
้
และไม่มีตัวแปลส าหรับค่าผลลัพธ์ที่ไดจาก method นี้
เมื่อท าการรันโปรแกรมจะได้ผลดังนี้
ี
กรณmethod มีการรับค่าparameter แต่ไม่มีการคืนค่า parameter
จะมีรูปแบบการเรียกใช้งานดังนี้
ObjectName.MethodName ([argument]);
โดยที่ ObjectName คือ ชื่อของ Object
Methodname คือชื่อ method ที่เรียกใช ้
Argument คือ ค่าของข้อมูลที่ต้องการส่งผานไปยัง method
่
ในการศึกษาเกี่ยวกับ method ที่มีการรับค่า parameter แต่ไม่มีคืนค่า parameter นั้นสามารถศกษาได้จาก
ึ
โปรแกรมตัวอย่างต่อไปนี้
ท าการสร้าง class fee เพื่อใช้ในการค านวณคาโดยศาลรถแท็กซี่ซึ่งสามารถอธิบายได้ดังนี้
่
public class fee คือ การประกาศ class ชื่อ fee
- [ ] public void calfee () คือการสร้าง method ชื่อ calfee () เพื่อค านวณและแสดงผลค่าโดยสารโดย
มีการรับค่า parameter s และ t และไม่มีการคืนค่า
136
Float total = 35+8*s+2*t คือ การประกาศตัวแปร total เพื่อใช้ในการเก็บค่าโดยสารที่คานวณได ้
สร้าง mail class ชื่อ Fee_Parameter_Void เพื่อเรียกใช้ method calFee() ในการค านวณค่าโดยสาร โดย
สามารถอธิบายได้ดังนี้
Public class Fee_ Parameter_ Void คือ การประกาศ class ชื่อ Fee_ Parameter_ Void
Fee fee_prm_ Void = new Fee () คือ การสร้าง object fee_prm_ Void จาก class Fee
Fee_prm_void.calFee () (60, 30.0f) คือ การเรียกใช้ method calFee() โดยมีการ
Argument คือ s=60 และ t=30 และไม่มี ตัวแปรส าหรับรับค่าผลลัพธ์ที่ได้จาก method นี้
เมื่อท าการรันโปรแกรมจะได้ผลดังนี้
กรณี method ไม่มีการับค่า parameter แต่มีการคืนค่า parameter
จะมีรูปแบบการเรียกใช้งานดังนี้
datatype MethodValue = ObjectName.MethodNaem ();
โดยที่ Object Name คือ ชื่อของ Object
Method Name คือ ชื่อของ Method ที่เรียกใช ้
Data type คือ ชนิดข้อมูล
137
้
MethodValue คือ ตัวแปรที่ใชส าหรับเก็บค่าที่ได้จากการคืนค่าของ method ในการศึกษาเกี่ยวกับ
ื
method ที่ไม่มีการรับค่า parameter แต่มีการคนค่า parameter นั้นสามารถศึกษาได้จากโปรแกรมตัวอย่าง
ต่อไปนี้
ท าการสร้าง class Fee เพื่อใช้ในการค านวณค่าโดยสารรถแท็กซี่ ซึ่งสามารถอธิบายได้ดังนี้
Public class Fee คือ การประกาศ class ชื่อ Fee
Public int คือ การประกาศตัวแปร s เป็นข้อมูลชนิด integer
Public float คือ การประกาศตัวแปร t เป็นข้อมูลชนิด float
Public float calFee () คือ การสร้าง method ชื่อ calFee () เพื่อค านวณค่าโดยสารโดไม่มีการ
รับค่า parameter แต่จะมีการคืนข้อมูลค่าโดยสารเป็นข้อมูลชนิด float
Return35+8*s+2*t คือ การก าหนดการคืนค่าของข้อมูลที่คานวณได ้
สร้าง main class ชื่อ Fee_NoPrm_Return เพื่อเรียกใช้ method calFee() ในการค านวณค่าโดยสาร โดย
สามารถอธิบายได้ดังนี้
Public class Fee_NoPrm_Return คือ การประกาศ class ชื่อ Fee_NoPrm_Return
Fee fee = new Fee () คือ การสร้าง object fee จาก class Fee
138
่
Fee.s = 50 คือ การก าหนดคา attribute s = 50
Fee.t = 45.5f คือการก าหนดค่า attribute t =45.5
Float total = fee. calfee (); คือ การเรียกใช method calFee () โดยไม่มีการส่งค่า attribute แต่มีตัว
้
แปร totalส าหรับคาผลลัพธ์ที่ได้จากการคืนค่าของ method นี้
่
System.out.println(“ค่าโดยสาร = “+ total + “บาท”) แสดงผลค่าโดยสารทั้งหมด
เมื่อท าการรันโปรแกรมจะได้ผลดังนี้
กรณี method มีการรับค่า parameter และ มีการคืนค่า parameter
จะมีรูปแบบการเรียกใช้งานดังนี้
Datatype Method Value = ObjectName.MethodName ([argument]);
โดยท ี่ object Name คือ ชื่อของ object
Method Name คือ ชื่อของ method ที่เรียกใช ้
data Type คือ ชนิดข้อมูล
้
Method Value คือ ตัวแปรที่ใชส าหรับเก็บค่าที่ได้จากการคืนค่าของ
method
Argument คือ ค่าของข้อมูลที่ต้องการส่งผานไปยัง method
่
ในการศึกษาเกี่ยวกับ method ที่มีการรับค่า parameter และ มีการคืนค่า parameter นั้น สามารถศึกษาได ้
จากโปรแกรมตัวอย่างต่อไปนี้
139
ท าการสร้าง class Fee เพื่อใช้ในการค านวณค่าโดยสารรถแท็กซี่ ซึ่งสามารถอธิบายได้ดังนี้
Public class Fee คือ การประกาศ class ชื่อ Fee
Public float calFee (int s, float t) คือ การสร้าง method ชื่อ calFee () เพื่อค านวณค่าโดยสาร โดยมี
การรับค่า parameter s และ t และจะมีการคืนค่าโดยสารเป็นข้อมูล
ชนิด float
Return35 + 8*s +2*t คือ การก าหนดการคืนค่าของข้อมูลที่คานวณได ้
สร้าง main class ชื่อ Fee_Prm_Return เพื่อเรียกใช้ method calFee() ในการค านวณค่าโดยสารโดย
สามารถอธิบายได้ดังนี้
Public class Fee_Prm_Return คือ การประกาศ class ชื่อ Fee_Prm_Return
Fee fee = new Fee () คือ การประกาศ object fee จาก class Fee
้
Float total = fee. calfee(100,05.0f); คือ การเรียกใช method calfee () โดยมีการส่งค่า attribute =
100 และ t = 25.0 และจะมีค่าตัวแปร total ส าหรับรับค่าผลลัพธิ์
ที่ได้จากการคืนค่าของ method นี้
่
System.out.println(“ค่าโดยสาย =+ “total+ “บาท”) แสดงผลคาโดยสารทั้งหมด
เมื่อท าการรันโปรแกรมจะได้ผลดังนี้
140
ประเภทของ method
ี่
รูปแบบของ method ในภาษา Java นั้นมีอยู่หลายประเภท ซึ่งแต่ละประเภทก็จะมีหน้าทเฉพาะตัวที่แตกต่าง
กัน ตัวอย่างของรูปแบบ method ในภาษา Java มีดังนี้
Instance Method
้
เป็น method ที่สามารถเรียกใช้ไดผ่านทาง object ที่สร้างจาก class ด้วย operator “new”ซึ่งจากตัวอย่าง
ท ี่
้
ผ่านมา method ที่เรียกใชจึงจัดเป็น Instance Method
ตัวอย่างเช่น
Static Method
คือ method ที่สามารถเรียกใช้ผานชื่อ class โดยไม่ต้องท าการสร้าง object ก่อน แต่มีข้อจ ากัดคือจะต้อง
่
เรียกใช้งานจาก method ประเภท Static Method เหมือนกันเท่านั้น
141
onstructor Method
เป็น method ที่มีการก าหนดชื่อของ method ให้เป็นชื่อเดียวกันกับ class เพื่อให้มีการเรียกใช้ Constructor
Method เป็น method แรกเมื่อเรียกใช้งาน class นั้น ๆ หน้าที่ของ Constructor Method คือใช้ส าหรับ
ก าหนดค่าเริ่มต้นให้กับ object
ตัวอย่างของการเรียกใช้งาน Constructor Method มีดังนี้
สร้าง class Salary ซึ่งมี Constructor Method ชื่อ Salary() และ Cal Salary (float s) อยู่ภายใน
class
เมื่อมีการเรียกใช้งาน main class จะมีการสร้าง object ผ่าน class Salary ท าให้ Constructor Method
ท างานโดยอัตโนมัต ิ
เมื่อท าการรันโปรแกรมจะได้ผลดังนี้
142
Overloading Method
่
คือ การที่ class มี Method ที่มีชื่อเหมือนกันตั้งแต่ 2 method ขึ้นไป โดยที่ Method เหลานั้นมี argumentท ี่
แตกต่างกัน ตัวอย่างของการเรียกใช้งาน Overloading Method มีดังนี้
จากตัวอย่างจะเห็นได้ว่ามี method ที่มีชื่อเหมือนกันอยู่ 2 method คือ method ชื่อ display () ซึ่ง
Method ทั้งสองนี้แตกต่างกันที่จ านวน argument โดยที่ method display (char a) จะมี argumentเป็น
ื่
ตัวอักษร ในขณะที่ method display (char a, int n) มี argument เป็นตัวอักษรและเลขจานวนเต็มเมเรียกใช ้
งาน method ทั้งสอง main class จะให้ผลที่แตกต่างกันโดยท ี่
Obj.display (‘a’) จะเป็นการเรียกใช้งาน method display (char a)
Obj.display (‘a’,10) จะเป็นการเรียกใช้งาน method display (char a, int n)
143
้
ผลที่ไดจากการรันโปรเเกรมตัวอย่างมีดังนี้
Overriding Method
คือการประกาศ Method ใน subclass โดยที่ method ที่ท าการประกาศนั้นมีอยู่ใน parent class ซึ่ง
ข้อก าหนดคือ จานวนของ argument, ชนิดข้อมูลของ argument เเละชนิดของข้อมูลที่คืนค่าจะต้องเหมือนกัน
กับของ parent class ตัวอย่างการเรียกใช้งาน Overriding Method มีดังนี้
144
จากตัวอย่างจะเห็นได้ว่า Class Boy เป็น subclass ของ class Human เเละ class ทั้งสองมี method ท ี่
เหมือนกันคือ void eat() เมื่อท าการเรียกใช้ method eat() จาก main
class จะท าให้ class Boy ท าการ overriding method eat()
ผลที่ไดจากการรันโปรแกรมมีดังนี้
้
Method ส าเร็จรูปในภาษา Java
ในภาษา Java นั้นจะมี method ส าเร็จรูปให้เลอกใช้จาก class ต่างๆ มากมาย ซึ่งในหัวข้อนี้จะน าเสนอ
ื
method ที่มีการใช้งานบ่อยครั้งในการเขียนโปรเเกรม ตัวอย่างของ method
ที่ใช้มีดังนี้
Method ในคลาส Math
ี่
เป็น method ส าเร็จรูปทจะท างานกับข้อมูลตัวเลขที่เป็นชนิดข้อมูลพื้นฐาน เช่น double, intger เป็นต้น
145
146
ี่
ใบงานท6.1
ค าชี้เเจง สร้าง method เพื่อท าหน้าที่ดังต่อไปนี้
1.สร้าง method เพื่อใช้ในการรับข้อมูลเลข 2 จ านวนและคืนค่าข้อมูลตัวเลขที่มีค่ามากทสุด
ี่
ุ
ี่
2.สร้าง method เพื่อใช้ในการรับข้อมูลเลข 2 จ านวนและคืนค่าข้อมูลตัวเลขที่มีค่าน้อยทสด
ี่
3.สร้าง method เพื่อใช้ในการรับข้อมูลเลข 3จ านวนและคืนค่าข้อมูลตัวเลขที่มีค่ามากทสุด
ุ
4.สร้าง method เพื่อใช้ในการรับข้อมูลเลข 4 จ านวนและคืนค่าข้อมูลตัวเลขที่มีค่าน้อยที่สด
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
147
ี่
ใบงานท6.2
่
ค าชี้เเจง สร้าง method ชื่อ rollDice() ซึ่งคืนคาเลข1-6 ที่ได้จากการทอยลูกเต๋า เเละใช method rollDice()
้
ในการทดลองความน่าจะเป็นของการทอยลูกเต๋าโดยก าหนดให้ทอยลูกเตาทั้งหมด1,000ครั้งและนับจ านวนหน้า
๋
ของลูกเต๋าที่ออกในแต่ละครั้งเพื่อน าไปค านวณหาความน่าจะเป็น
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………….
148
ี่
ใบงานท6.3
ค าชี้แจงจงเขียนโปรแกรมค านวณค่าแรง OT โดยก าหนดให้สร้าง Class ชื่อ OT และสร้างmethod ดังนี้
Method ส าหรับข้อมูล เป็นเเบบ Instance Method ท าหน้าที่ดังนี้
1. รับข้อมูลจ านวนชั่วโมงOT
2. รับข้อมูลประเภทแรงงาน(มี 2 แบบคือประเภท O และประเภท “X”)
3. รับข้อมูลค่าแรงปกติต่อชั่วโมง
4. ส่งข้อมูลไปยัง method ค านวณOT
Method ส าหรับค านวณ OT (calOT) เป็นเเบบOverloading Method ท าหน้าที่ OT ส าหรับแรงงาน
่
ประเภท 0 โดยคดค่า OT เท่ากับ 1.00 เท่าของคาแรงปกติ
ิ
Method ส าหรับคานวณ OT (calOT) เป็นเเบบOverloading Method ท าหน้าที่ OT ส าหรับแรงงาน
ประเภท X โดยคิดค่า OT เท่ากับ 1.5 เท่าของค่าแรงปกต ิ
Method ส าหรับเเสดงผลข้อมูล(showData)เป็นเเบบ lnstance Method ท าหน้าที่แสดงผลการค านวณ
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
..................................................................................................................................................................................
................................................................................................................................................................................
149
Constructar
เป็น method ประเภทนี้ซึ่งมีลักษณะพิเศษคือ จะมีชื่อเดียวกันกับชื่อของ class เมื่อมีการสร้าง Object จาก
class นั้น Constructor จะถูกเรียกใช้งานโดยอัตโนมัติ Constructor นั้นเป็น method ที่ไม่มีการคืนค่าเเละไม่
ต้องระบุ keyword "void" ในขั้นตอนการสร้าง class ตัวอย่างของ Constructor Calculate() ซึ่งมีชื่อเดียวกัน
กับ class Calculate
รอใส่รูป
ี่
ในกรณีทโปรแกรมไม่มีการสร้าง Constructor เอาไว้ compiler ของ java จะท าการใส่ default Constructor
ให้กับโปรแกรมโดยอัตโนมัติ ซึ่งจะเป็น Constructor ที่ไม่มีค าสั่งอยู่ภายใน
จุดประสงค์หลักในการสร้าง Constructor คือ เพื่อใช้ในการก าหนดค่าเริ่มต้นให้กับ object ก่อนจะเริ่มเรียกใช ้
งาน attribute หรือ method อื่นๆ ซึ่งส่วนใหญ่แล้วผู้ใช้จ าเป็นต้องก าหนดค่าเริ่มต้นให้กับ object เพื่อใช้ในการ
ประมวณผลต่างๆ ดังนั้น Constructor จึงสามารถรับค่า parameter ได้เช่นเดียวกันกับ method แต่จะมีข้อ
่
แตกต่างอยู่ที่ Constructor จะไม่มีการคืนคาเเละไม่ต้องใช้ keyword "void" ในการสร้าง method รูปแบบการ
สร้าง Constructor มีดังนี้
[modifier] ClassName ([parameter]) {
[statements ]
}
150
โดยท ี่
้
Modifier คือ keyword ที่ใชในการก าหนดการเข้าถึง method
Class Name คือ ชื่อ class
Parameter คือ ตัวเเปรที่ใช้รับข้อมูล argument จาก class ที่เรียกใช้งาน
Statements คือ ชดค าสั่งก าหนดการท างาน
ุ
ในการเรียกใช้งาน Constructor จะเปรียบเสมือนการสร้าง object นั้นเอง และมีรูปแบบในการสร้างดังนี้
Class Name objName = new ClassName ([argument]);
โดยท ี่
ClassName คือ ชื่อ class
objName คือ ชื่อ object
้
new คือ keword ที่ใชในการสร้าง object
่
argument คือ คา argument ที่จะส่งไปยัง Constructor
ตัวอย่างโปรแกรมที่มีการใช้งาน default Constructor มีดังนี้
สามารถอธิบายโปรแกรมได้ดังนี้
class Student คือ การประกาศ class ชื่อ Student
public float grade; คือ การประกาศ attribute grade มีชนิดข้อมูลเป็นแบบ float และไม่มีการสร้าง
Constructor