if ซ้อน if ตอนที่ 2

หลังจากที่ได้ทำความรู้จักกับ if ซ้อน if แบบที่ 1 หรือ if else if  ไปแล้ว คราวนี้เราจะมาเรียนรู้การใช้งาน if ซ้อน if อีกแบบหนึ่งที่ซับซ้อนขึ้นกว่าเดิม มาดูรูปแบบ คำสั่งกันเลยดีกว่าค่ะ

รูปแบบคำสั่ง if ซ้อน if แบบลำดับชั้น

Java-Basic-ง่ายนิดเดียว-if-nested-if-2-01

 

ลักษณะการใช้งานของ if ซ้อน if แบบนี้ เราใช้เพื่อตรวจสอบเงื่อนไขแบบที่ต้องตรวจสอบเงื่อนไขตามลำดับชั้น  เช่น

 

ในการเขียนโปรแกรมเราทำการเชื่อมต่อกับฐานข้อมูล เมื่อเราดึงข้อมูลจากตารางขึ้นมากำหนดค่าให้ออบเจ็กต์ ก่อนจะนำออบเจ็กต์ไปใช้งาน เราก็ต้องตรวจสอบก่อนว่าออบเจ็กต์นั่น ๆ มีค่าหรือไม่ (เงื่อนไขที่ 1)

 

ต่อมา หลังจากผ่านด่านที่ 1 แล้ว คือถ้าออบเจ็กต์ถูกกำหนดค่าให้แล้ว เราก็ดึงข้อมูลบางอย่างในออบเจ็กต์มาทำการประมวลผลต่อไป (เงื่อนไขที่ 2)

 

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

เรามีส่วนหนึ่งของระบบซื้อขายหนังสือ และมีคนเลือกซื้อหนังสือเข้ามา เงื่อนไขที่ต้องตรวจสอบดังนี้

เงื่อนไข ที่ 1

ถ้ามีข้อมูลหนังสือ ให้แสดงรายละเอียดหนังสือ และตรวจสอบเงื่อนไขที่ 2

ถ้าไม่มีข้อมูลหรือหนังสือหมดให้แจ้งว่า “ไม่พบสินค้า…

 

เงื่อนไขที่ 2

ถ้าราคาหนังสือมากกว่า  >=500 บาท ให้ลดราคา 50 บาท

ถ้าราคาต่ำกว่า หรือ  <500 บาท จะไม่ได้รับโปรโมชั่นนี้

 

ลองมาดูโค้ดกันเลยดีกว่าค่ะ

 

ลงมือเขียนโปรแกรม

เริ่มต้นด้วยการสร้างคลาส Book.java เพื่อจำลองออบเจ็กต์ของหนังสือ โดยมีรายละเอียดโค้ดดังนี้

 

ต่อมาสร้างคลาส TestBook.java และจำลองสถานะการณ์ 3 เหตุการณ์ดังต่อไปนี้

  1. กรณีไม่มีสินค้า
  2. กรณีมีสินค้า ราคาต่ำกว่า 500 บาท
  3. กรณีมีสินค้า ราคาสูงกว่า 500 บาท

 

มาดูรายละเอียด กรณีที่ 1 กันค่ะ อ่านโค้ดดูนะคะ

 

ลอง Run ดูจะได้ผลลัพธ์ดังนี้

Java-Basic-ง่ายนิดเดียว-if-nested-if-2-02

 

2. กรณีมีสินค้า ราคาต่ำกว่า 500 บาท

 

ลอง Run ดูจะได้ผลลัพธ์ดังนี้

Java-Basic-ง่ายนิดเดียว-if-nested-if-2-03

 

3. กรณีมีสินค้า ราคาสูงกว่า 500 บาท

 

ลอง Run ดูจะได้ผลลัพธ์ดังนี้

Java-Basic-ง่ายนิดเดียว-if-nested-if-2-04

 

สรุป

คำสั่ง if ซ้อน if แบบที่ 2 นี้เราสามารถสร้าง if   หรือ if else  หรือ if else if   ซ้อนกันลึกลงไปกี่ระดับก็ได้ (ทั้งในส่วนของคำสั่งหลัง if หรือ หลัง else) ตามความต้องการ หรือตามเงื่อนไขทางธุรกิจ แต่การเขียนซ้อนกันมาก ๆ ก็อาจจะทำให้โค้ดอ่านยาก และเป็นปัญหาในการแก้ไขโค้ดในภายหลังได้ ดังนั้นการใช้คำสั่ง if ซ้อน if แบบนี้ จึงต้องพิจารณาถึงความง่ายต่อการอ่านโค้ดในภายหลังด้วยนะคะ 🙂

 

ธมนวรรณ มณีจันทร์

ธมนวรรณ มณีจันทร์

|:- เราเชื่อมั่นว่าการเสียสละและการแบ่งปันจะทำให้โลกใบนี้สวยงามมากขึ้น ทุกๆ จุดเริ่มต้นของการเรียนรู้ นำไปสู่การเรียนรู้ถัดไป เว็บไซต์แห่งนี้ขอเป็นส่วนหนึ่งของการแบ่งปันความรู้ที่ไม่มีที่สิ้นสุด มาร่วมกันผลักดันโลกของเราให้หมุนไปพร้อมกับพลังแห่งความรักด้วยกันนะคะ :) >>> |:- About Me! -:|