Java#21 การเขียนคำสั่ง ทำให้เกิดทางเลือก

คำว่า if แปลว่า “ถ้า” หลังจากการใช้คำสั่งนี้ จะตามมาด้วยเงื่อนไขเสมอ และผลลัพธ์ที่เป็นไปได้ของเงื่อนไข จะมี 2 ค่าเท่านั้นคือ เป็นจริง (true) หรือ เท็จ (false)

 

เรามาเรียนรู้คำสั่ง if ไปพร้อมกับการเขียนโค้ดกันนะคะ

 

สร้างโปรเจ็กต์

1. เปิดโปรแกรม NetBeans IDE ขึ้นมา ไปที่ File > New Project

ภาพที่ 1 File > New Project

 

2.เลือก Java > Java Application และคลิกที่ปุ่ม Next

ภาพที่ 2 เลือกโปรเจ็กต์

 

3. ตั้งชื่อโปรเจ็กต์ว่า Learn Selection หลังจากนั้น ติ๊กถูกที่หน้า Create Main Class ออก และคลิกที่ปุ่ม Finish

ภาพที่ 3 กรอกรายละเอียดโปรเจ็กต์

 

4. เราจะได้โปรเจ็กต์ใหม่ขึ้นมา

ภาพที่ 4 รายชื่อโปรเจ็กต์ใหม่ที่สร้าง

 

 

สร้างแพ็กเกจ

1. คลิกขวาที่ Source Packages และไปที่ New > Java Package

ภาพที่ 5 New > Java Package

 

2. ตั้งชื่อ Package ว่า com.thjava และคลิกที่ปุ่ม Finish

ภาพที่ 6 สร้าง package

 

3. เราจะได้ Package ใหม่ขึ้นมา

ภาพที่ 7 Package ใหม่ที่สร้างขึ้นมา

 

 

สร้างคลาส Main

1. คลิกขวาที่ Package ชื่อ com.thjava ไปที่ New > Java Main Class

ภาพที่ 8 New > Java Main Class

 

2. ตั้งชื่อคลาสว่า Main และคลิกที่ปุ่ม Finish

ภาพที่ 9 ตั้งชื่อ Class

 

3. เราจะได้ไฟล์ Main.java ขึ้นมา

ภาพที่ 10 แสดงไฟล์ใหม่ที่สร้างขึ้นมา

 

4. ในเบื้องต้นจะมีโค้ดดังนี้

ภาพที่ 11 แสดงโค้ดไฟล์ Main.java

 

 

สร้างแพ็กเกจ model

1. คลิกขวาที่แพ็กเกจ com.thjava ไปที่ New > Java Package

ภาพที่ 12 New > Java Package

 

2. เพิ่มชื่อแพ็กเก็จ model ลงไป และคลิกที่ปุ่ม Finish

ภาพที่ 13 ตั้งชื่อ package

 

4. เราจะได้ Package ที่ลงท้ายด้วย model ขึ้นมา

ภาพที่ 14 package ใหม่ที่สร้างขึ้นมา

 

 

สร้างคลาส Users

1. คลิกขวาที่ แพ็กเกจ ชื่อ com.thjava.model คลิกขวา ไปที่ New > Java Class

ภาพที่ 15 New > Java Class

 

2. ตั้งชื่อคลาสว่า Users และคลิกที่ปุ่ม Finish

ภาพที่ 16 ตั้งชื่อคลาส

 

3. เราจะได้คลาส Users ขึ้นมา

ภาพที่ 17 ไฟล์ใหม่ที่สร้างขึ้นมา

 

4. เริ่มต้นจะมีโค้ดดังนี้

ภาพที่ 18 แสดงโค้ดไฟล์ Users.java

 

5. ให้ประกาศตัวแปร username และ password ขึ้นมา มีชนิดข้อมูลเป็น String และกำหนดการเข้าถึงเป็น private

ภาพที่ 19 ประกาศตัวแปร

 

 

สร้างคอนสตรัคเตอร์

1. คลิกหาพื้นที่ว่าง เตรียมเขียนโค้ดใหม่

ภาพที่ 20 เตรียมสร้างโค้ด

 

2. กด Alt + Insert และเลือก constructor

ภาพที่ 21 เลือก Constructor

 

3. จะปรากฏหน้าจอให้สร้าง คอนสตรัคเตอร์ ให้คลิกที่ปุ่ม Generate

ภาพที่ 22 คลิก Generate

 

4. เราจะได้คอนสตรัคเตอร์เปล่า ๆ ขึ้นมา

ภาพที่ 23 โค้ด Constructor

 

5. กด Alt + Insert อีกครั้ง และเลือก Constructor

ภาพที่ 24 เลือก Constructor

 

6. จะปรากฏหน้จอให้สร้างคอนสตรัคเตอร์ ให้คลิกที่ Select All และคลิกที่ Generate

ภาพที่ 25 Select All > Generate

 

7. เราจะได้ คอนสตรัคเตอร์ ที่รับค่า username และ password เข้ามา

ภาพที่ 26 แสดง constructor ที่ 2

 

 

สร้างเมธอด ตรวจสอบ username และ password

1. สร้างเมธอดชื่อ checkUser() เป็นเมธอดที่ไม่มีการคืนค่าใด ๆ แต่รับค่า username และ password เข้ามาตรวจสอบว่า ข้อมูลถูกต้องหรือไม่

ภาพที่ 27 สร้างเมธอด

 

2. ใช้คำสั่ง if ตรวจาสอบว่า ค่า username และ password ที่ส่งเข้ามา ตรงกับค่าที่เก็บเอาไว้ในตอนแรกหรือไม่

ภาพที่ 28 เมธอด checkUser()

 

3. ถ้าเงื่อนไขเป็นจริง ให้แสดงข้อความว่า “ข้อมูลถูกต้อง”

ภาพที่ 29 คำสั่งแสดงผล

 

 

ทดสอบคำสั่ง if

1. มาที่ไฟล์ Main.java คลิกหาพื้นที่ว่าง ในเมธอด main() เพื่อเตรียมเขียนโค้ด

ภาพที่ 30 เตรียมเขียนโค้ดใหม่

 

2. สร้างออบเจ็กต์ จากคลาส Users

ภาพที่ 31 คำสั่งในการสร้างออบเจ็กต์

 

3. กดคียลัด Ctrl + Shift + I เพื่อ import ไฟล์ที่อยู่ต่าง package มาใช้งาน เราจะได้คำสั่ง import ขึ้นมาด้านบนไฟล์

ภาพที่ 32 แสดงคำสั่ง import

 

4. กำหนดค่า username เป็น admin และ password เป็น 1234

ภาพที่ 33 ส่งค่าให้ constructor

 

5. เรียกใช้เมธอด checkUser() ทำการส่งค่า admin และ 1234 ไปให้

ภาพที่ 34 เรียกใชเมธอด

 

6. กด F6 เพื่อสั่ง Run จะพบกับหน้าจอให้เลือกไฟล์ในการ Run โปรแกรม คลิก OK

ภาพที่ 35 คลิก “OK”

 

7. เราจะได้ผลลัพธ์ เป็น “ข้อมูลถูกต้อง”

ภาพที่ 36 แสดงผลลัพธ์

 

8. หากเราส่งข้อมูล password ผิดไปให้

ภาพที่ 37 แสดงการแก้ไขข้อมูล

 

9. กด F6 เพื่อสั่ง Run จะเห็นว่า ไม่มีอะไรเกิดขึ้นที่ Output

ภาพที่ 38 แสดงผลลัพธ์

 

หากเราต้องการให้เกิดเหตุการณ์กรณีเงื่อนไขเป็นเท็จ เราจะต้องเพิ่ม คำสั่ง else ดูรายละเอียดได้ ในหัวข้อต่อไป

 

 

การใช้คำสั่ง else

1. มาที่คลาส Users ในเมธอด checkUser() ให้เพื่ม คำสั่ง else ลงไป

ภาพที่ 39 แสดงการเพิ่มโค้ด

 

2 ถ้าเงื่อนไขเป็นเท็จ หรือ username และ password ไม่ถูกต้อง คำสั่งในส่วนของ else จะถูกสั่งให้ทำงาน ให้แสดงผลว่า “ข้อมูลไม่ถูกต้อง กรุณาตรวจสอบข้อมูลอีกครั้ง”

ภาพที่ 40 แสดงการเพิ่มโค้ด

 

3. กด F6 เพื่อส่ง Run โปรเจ็กต์อีกครั้ง จะเห็นว่า คราวนี้ ได้ผลลัพธ์เป็น “ข้อมูลไม่ถูกต้อง กรุณาตรวจสอบข้อมูลอีกครั้ง”

ภาพที่ 41 แสดงผลลัพธ์

 

 

สรุปโครงสร้างคำสั่ง if else

จากโค้ดที่เขียนมา เราสามารถสรุปโครงสร้างของคำสั่ง if else ได้ดัง ภาพด้านล่าง

ภาพที่ 42 สรุปโครงสร้างคำสั่ง if else

 

 

การใช้คำสั่ง if else if

เราจะใช้คำสั่ง if else if เมื่อต้องตรวจสอบหลาย ๆ เงื่อนไข แต่ต้องการให้โปรแกรมทำงานตามเงื่อนไขที่ถูกต้อง เพียงเงื่อนไขเดียว

 

ยกตัวอย่างเช่น

 

เราจะสร้างโปรแกรมแปลงตัวเลข 1 – 7 ให้กลายเป็นวันทั้ง 7 คือ

เลข 1 = วันจันทร์

เลข 2 = วันอังคาร

เลข 3 = วันพุธ

เลข 4 = วันพฤหัสบดี

เลข 5 = วันศุกร์

เลข 6 = วันเสาร์

เลข 7 = วันอาทิตย์

 

 

เขียนโปรแกรม

1. มาที่แพ็กเกจ ที่ลงท้ายด้วย model คลิกขวา ไปที่ New > Java Class

ภาพที่ 43 New > Java Class

 

2. ตั้งชื่อไฟล์ว่า ToDay และคลิกที่ปุ่ม finish

ภาพที่ 44 ตั้งชื่อคลาส > Finish

 

3. เราจะได้ไฟล์ใหม่ขึ้นมา ชื่อว่า ToDay.java

ภาพที่ 45 แสดงไฟล์ ToDay.java

 

4. ในเบื้องต้นจะมีโค้ดดังนี้

ภาพที่ 46 แสดงโค้ด

 

5. คลิกหาพื้นที่ว่าง เตรียมสร้างเมธอด

ภาพที่ 47 เตรียมเขียนโค้ด

 

6. สร้างเมธอดชื่อ findDay() เป็นเมธอดที่ไม่คืนค่าอะไร แต่รับค่าชนิดตัวเลขเข้ามา 1 ตัว

ภาพที่ 48 สร้างเมธอด

 

7. ใช้ คำสั่ง if else if เพื่อตรวจสอบค่าตัวเลขทั้ง 7

ภาพที่ 49 ใช้คำสั่ง if else if

 

8. สั่งแสดงผลในแค่ละเงื่อนไขออกมา เช่น ถ้าเลขที่ส่งมามีค่า 1 ก็ให้แสดงคำว่า วันจันทร์ ออกมา เป็นต้น

ภาพที่ 50 เพิ่มคำสั่งในการแสดงผล

 

 

ทดสอบโปรแกรม

1. มาที่ไฟล์ Main.java ลบคำสั่งเดิมในเมธอด main() ทิ้งไป เตรียมเขียนคำสั่งใหม่ขึ้นมา

ภาพที่ 51 เตรียมทดสอบโปรแกรม

 

2. สร้างออบเจ็กต์จากคลาส ToDay และกด Ctrl +Shift + I เพื่อ import ไฟล์ที่อยู่ต่าง package ให้เรียบร้อย

ภาพที่ 52 สร้างออบเจ็กต์

 

3. เรียกใช้เมธอด findDay() และส่งค่าเลข 3 ไปให้เมธอดทำงาน

ภาพที่ 53 เรียกใช้เมธอด

 

4. กด F6 เพื่อสั่ง Run เราจะได้ผลลัพธ์ วันพุธ ออกมา

ภาพที่ 54 แสดงผลลัพธ์

 

5. ลองส่งเลข 8 ไปให้เมธอด

ภาพที่ 55 ส่งเลข 8 ไปให้เมธอด

 

6. กด F6 เพื่อ Run โปรเจ็กต์ จะเห็นว่า ไม่เกิดอะไรขึ้น เพราะโค้ดในเมธอด findDay() เราตรวจสอบเฉพาะเลข 1-7 เท่านั้น

ภาพที่ 56 แสดงผลัพธ์

 

 

เพิ่มคำสั่ง else

1. มาที่ไฟล์ ToDay.java และมองไปที่ เมธอธ findDay() เตรียมเขียนโค้ด

ภาพที่ 57 เตรียมเพิ่มโค้ด

 

2. เพิ่มคำสั่ง else ลงไป

ภาพที่ 58 เพิ่มคำสั่ง else

 

3. ถ้าผู้ใช้งานส่งเลขที่ไม่ตรงกับ 1-7 มา คำสั่งใน else จะทำงาน สั่งให้แสดงผลว่า “กรุณากรอกเลข 1-7”

ภาพที่ 59 เพื่มคำสั่งแสดงข้อผิดพลาด

 

4. กด F6 เพื่อ Run โปรแกรม จะเห็นว่า เราพบข้อความแจ้งเตือนแล้ว

ภาพที่ 60 แสดงผลลัพธ์

 

 

สรุปโครงสร้างคำสั่ง if else if

จากโค้ดที่เขียนมา เราสามารถสรุปโครงสร้างของคำสั่ง if else if ได้ดัง ภาพด้านล่าง

ภาพที่ 61 โครงสร้างคำสั่ง if else if

 

 

การใช้คำสั่ง if ซ้อน if

ในบางครั้ง การตรวจสอบเงื่อนไขอาจจะมี ระดับ ในการตรวจสอบ เช่น

 

ในบริษัทแห่งหนึ่ง รับพนักงาน โดยคัดจากเงื่อนไข 3 ระดับคือ

1. อายุ (age) มากกว่า 24 ปี

2. มีคะแนน toeic มากกว่าหรือเท่ากับ 850 คะแนน

3. คะแนนสอบสัมภาษณ์ (interviewScore) ต้องมากกว่า 99 คะแนน

 

เราจะใช้คำสั่ง if ซ้อนใน if ทั้งหมด 3 ระดับ เพื่อใช้ในการคัดเลือกผู้สมัคร สามารถเขียนโปรแกรมได้ดังนี้

 

 

เขียนคำสั่ง if ซ้อน if

1. คลิกขวาที่ package ที่ลงท้ายด้วย model ไปที่ New > Java Class

ภาพที่ 62 New > Java Class

 

2. ตั้งชื่อคลาสว่า Interview และคลิกที่ปุ่ม finish

ภาพที่ 63 ตั้งชื่อคลาส > Finish

 

3. เราจะได้ไฟล์ Interview.java ขึ้นมา

ภาพที่ 64 แสดงไฟล์ Interview.java ที่สร้างขึ้นมา

 

4. ในเบื้องต้นจะมีโค้ดดังนี้

ภาพที่ 65 แสดงโค้ด

 

5. คลิกหาพื้นที่ว่าง เพื่อสร้างเมธอดใหม่

ภาพที่ 66 เตรียมสร้างเเมธอดใหม่

 

6. ตั้งชื่อเมธอดว่า checkData() ไม่มีการคืนค่าใด ๆ แต่รับค่าตัวเลข เข้ามา 3 ค่า คือ age, toeic และ interviewScore

ภาพที่ 67 constructor method

 

7. เขียนคำสั่ง if เพื่อตรวจสอบอายุ ต้องมากกว่า 24 ปี

ภาพที่ 68 เพิ่มคำสั่ง if ที่ 1

 

8. เพิ่มคำสั่ง else ของเงื่อนไขที่ 1 ถ้าเงื่อนไขเป็นเท็จ หรือ อายุไม่ได้มากกว่า 24 ปี ให้แสดงข้อความว่า “อายุน้อยกว่า 24 ปี”

ภาพที่ 69 เพิ่มคำสั่ง else

 

9. เขียนคำสั่ง if เพื่อตรวจสอบคะแนน toeic ต้องมากกว่า หรือเท่ากับ 850 ซ้อนลงไปใน if แรก

ภาพที่ 70 เพิ่มคำสั่ง if ที่ 2

 

10. เพิ่มคำสั่ง else กรณีเงื่อนไขที่ 2 เป็นเท็จ ให้แสดงข้อความว่า “คะแนน toeic น้อยกว่า 850” คะแนน

ภาพที่ 71 เพื่มคำสั่ง else

 

11. เขียนคำสั่ง if เพื่อตรวจสอบเงื่อนไขที่ 3 คะแนนสอบสัมภาษณ์ (interviewScore) ต้องมากกว่า 99 คะแนน ซ้อนลงไปในเงื่อนไขที่ 2

ภาพที่ 72 เพิ่มคำสั่ง if ที่ 3

 

12. ถ้าเงื่อนไขเป็นจริง ให้แสดงข้อความว่า “ผ่านเกณฑ์การตรวจสอบ”

ภาพที่ 73 คำสั่งแสดงผล

 

13. เพิ่มคำสั่ง else กรณีเงื่อนไขที่ 3 เป็นเท็จ ให้แสดงข้อความว่า “คะแนนสอบสัมภาษณ์ ไม่ผ่าน”

ภาพที่ 74 เพิ่มคำสั่ง else

 

 

ทดสอบคำสั่ง if ซ้อน if

1. มาที่ไฟล์ Main.java ลบคำสั่งการทดสอบเดิมทิ้งไป เตรียมเขียนคำสั่งใหม่ขึ้นมา

ภาพที่ 75 เตรียมเขียนโค้ดทดสอบ

 

2. สร้างออบเจ็กต์จากคลาส Interview และกด Ctrl + Shift + I เพื่อ import ไฟล์ที่อยู่ต่าง package ให้เรียบร้อย

ภาพที่ 76 สร้างออบเจ็กต์จากคลาส Interview

 

3. เรียกใช้เมธอด checkData() ส่งค่า อายุ 26, คะแนน toeic 865 และคะแนนสอบสัมภาษณ์ 250 คะแนน ไปให้เมธอดทำงาน

ภาพที่ 77 เรียกใช้เมธอด

 

4. กด F6 เพื่อสั่ง Run จะเห็นว่า เราได้คำตอบ “ผ่านเกณ์การตรวจสอบ” ขึ้นมา เพราะเงื่อนไขทั้ง 3 ถูกต้อง

ภาพที่ 78 แสดงผลลัพธ์

 

5. ลองลดอายุเป็น 22 ปี และสั่ง Run เราจะได้คำตอบว่า

ภาพที่ 79 แสดงผลลัพธ์

 

6. ลองลด คะแนน toeic เป็น 600 คะแนน และสั่ง Run เราจะได้คำตอบ ดังภาพด้านล่าง จะเห็นว่า เมื่อเงื่นไขแรกไม่ผ่าน โปรแกรมก็จะไม่เสียเวลาไปเช็คเงื่อนไขต่อไป

ภาพที่ 80 แสดงโค้ดและผลลัพธ์

 

7. แต่ถ้าเงื่อนไขแรกผ่าน หรืออายุมากกว่า 24 ปี เงื่อนไขที่ 2 ถึงจะทำงาน

ภาพที่ 81 แสดงโค้ดและผลลัพธ์

 

 

สรุปโครงสร้างคำสั่ง if ซ้อน if

จากโค้ดที่เขียนมา เราสามารถสรุปโครงสร้างของคำสั่ง if ซ้อน if ได้ดัง ภาพด้านล่าง

ภาพที่ 82 แสดงโครงสร้าง if ซ้อน if

 

*การเขียนคำสั่ง if ซ้อน if เราจะซ้อนในส่วนของ if หรือ else ก็ได้นะคะ และสามารถเขียนคำสั่งซ้อนกันลงไปลึกมากเท่าไหร่ก็ได้ แต่ต้องคำนึงถึงการบำรุงรักษาด้วย โค้ดที่อ่านง่าย ไม่ควรเขียนให้ซับซ้อนมากเกินไปค่ะ

 

 

การใช้คำสั่ง switch

จากโค้ดรับค่าตัวเลข 1-7 เข้ามาตรวจสอบว่าเป็นวันอะไรนั้น เราสามารถใช้คำสั่ง switch ในการตรวจสอบได้ โดยมีขั้นตอนดังต่อไปนี้

 

1. มาที่ไฟล์ ToDay.java คลิกหาพื้นที่ว่าง เพื่อสร้างเมธอดใหม่

ภาพที่ 83 เตรียมเขียนคำสั่ง switch

 

2. สร้างเมธอดชื่อ checkDayBySwitch() ไม่มีการคืนค่าใด ๆ แต่รับค่าชนิดตัวเลขเข้ามา

ภาพที่ 84 สร้างเมธอด

 

3. เพิ่มคำสั่ง switch เพื่อตรวจสอบ ตัวเลขที่รับเข้ามา

ภาพที่ 85 คำสั่ง switch

 

4. ถ้าค่าเป็นเลข 1 หรือ case เป็น 1 ให้แสดงข้อความว่า “วันจันทร์”

ภาพที่ 86 คำสั่งเมื่อ case เป็นจริง

 

5. เพิ่มคำสั่ง break ลงไป เมื่อเคสเป็นจริง และเจอคำสั่ง break ก็จะออกจาก switch ทันที ไม่ไปตรวจ case อื่น

ภาพที่ 87 คำสั่ง break

 

6. ถ้า case เป็นเลข 2 ให้แสดงข้อความว่า “วันอังคาร”

ภาพที่ 88 case ที่ 2

 

7. เขียนโค้ดเพื่อตรวจสอบ case ต่อให้จบทั้งหมด 7 วัน

ภาพที่ 89 ตรวจสอบเคสทั้ง 7

 

8. เพิ่มคำสั่ง default เพื่อแสดงผลกรณีเลขที่ส่งเข้ามาไม่ตรงกับค่าใดๆ (จะมีหรือไม่ก็ได้)

ภาพที่ 90 เพิ่มคำสั่ง default

 

 

ทดสอบคำสั่ง switch

1. มาที่ไฟล์ Main.java ลบคำสั่งทดสอบเดิมทิ้งไป และเตรียมเขียนโค้ดใหม่

ภาพที่ 91 เตรียมเขียนโค้ดทดสอบ

 

2. สร้างออบเจ็กต์จากคลาส ToDay และกด Ctrl + Shift + I เพื่อ import ไฟล์ที่อยู่ต่าง package เข้ามาใช้งาน

ภาพที่ 92 สร้างออบเจ็กต์

 

3. เรียกใช้เมธอด checkDayBySwitch() และส่งเลข 5 ไปให้เมธอดทำงาน

ภาพที่ 93 เรียกใช้เมธอด

 

4. กด F6 เพื่อสั่ง Run โปรแกรม จะเห็นว่า ได้คำตอบ “วันศุกร์” ออกมา

ภาพที่ 94 แสดงผลลัพธ์

 

5. มาที่ไฟล์ ToDay.java ตรง case ระหว่าง case ที่ 5 และ case ที่ ให้ลบคำสั่ง break ออก

ภาพที่ 95 ลบคำสั่ง break

 

6. กด F6 เพื่อ Run โปรเจ็กต์อีกครั้ง จะเห็นว่า เมื่อเงื่อนไขเป็นจริง และไม่เจอคำสั่ง break case ก็จะทำงานต่อไปเรื่อย ๆ จบพบคำสั่ง break ในกรณีนี้เราสามารถนำไปเขียนโค้ดได้ยืดหยุ่นมากขึ้น และเราจะได้ศึกษาลึกซึ้งมากขึ้นอีก ในบทความอื่น ๆ ค่ะ

ภาพที่ 96 แสดงผลลัพธ์

 

 

สรุปโครงสร้างคำสั่ง switch

จากโค้ดที่เขียนมา เราสามารถสรุปโครงสร้างของคำสั่ง switch ได้ดัง ภาพด้านล่าง

ภาพที่ 97 โครงสร้างคำสั่ง switch