เมื่อคุณคิดเกี่ยวกับมัน มี "ifs" มากมายในชีวิตของเรา ถ้าร้านขายของชำเปิด เราสามารถเข้าไปซื้อของได้ มิฉะนั้นเราไม่สามารถ หากเป็นเวลา 12.00 น. ก็ถึงเวลาพักรับประทานอาหารกลางวัน
โปรแกรมพึ่งพา “ifs” มากพอๆ กับที่เราทำ ในการเขียนโปรแกรม เรียกว่า ifs แบบมีเงื่อนไข คำสั่งเหล่านี้อนุญาตให้คุณเรียกใช้หรือไม่เรียกใช้บล็อกของรหัส ขึ้นอยู่กับว่าตรงตามเงื่อนไขเฉพาะหรือไม่
ในคู่มือนี้ เราจะพูดถึงว่าคำสั่งทำงานอย่างไรใน Java และเหตุใดจึงมีประโยชน์ เราจะอธิบายตัวอย่างเพื่อสาธิตวิธีการทำงาน
ถ้อยแถลง
บางครั้ง คุณไม่ต้องการให้โค้ดบางบรรทัดทำงานในโปรแกรมของคุณ นั่นคือที่มาของตรรกะแบบมีเงื่อนไข โดยใช้ if
คำสั่ง คุณสามารถประเมินนิพจน์ และรันบล็อกของโค้ดขึ้นอยู่กับผลลัพธ์ของนิพจน์นั้น
if
คำสั่งประเมินว่านิพจน์บูลีนเป็นเท็จหรือจริง หากนิพจน์นั้นเป็นจริง โค้ดจะถูกดำเนินการ ถ้านิพจน์เป็นเท็จจะไม่มีอะไรเกิดขึ้น บางครั้ง if
คำสั่งเรียกว่าคำสั่งควบคุมโฟลว์
เปิดไฟล์ Java ใหม่และวางในรหัสต่อไปนี้:
class MenuPrices { public static void main(String[] args) { String order = "Ham Sandwich"; if (order.equals("Ham Sandwich")) { System.out.println("The price of a " + order + " is $1.95."); } System.out.println("Done"); } }
ในโค้ดนี้ เราได้กำหนดตัวแปรที่เรียกว่า order ซึ่งเก็บค่าสตริงไว้ "Ham Sandwich" จากนั้นเราใช้คำสั่ง if เพื่อตรวจสอบว่าออร์เดอร์เท่ากับคำว่า “แฮมแซนวิช” หรือไม่ ถ้าใช่ จะพิมพ์ราคาของแซนวิชแฮม
รันโปรแกรม Java นี้ในสภาพแวดล้อมการเขียนโปรแกรมของคุณ คุณจะเห็นคำตอบต่อไปนี้:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
The price of a Ham Sandwich is $1.95. Done
ลำดับที่เราระบุคือ “แฮมแซนวิช” ดังนั้นบรรทัดของโค้ดจึงถูกรัน มาเปลี่ยนลำดับของเราเป็นแซนวิชไก่:
String order = "Chicken Mayo Sandwich"; if (order.equals("Ham Sandwich")) { System.out.println("The price of a " + order + " is $1.95. "); } System.out.println("Done");
รหัสของเราส่งคืน:เสร็จสิ้น เนื้อหาของคำสั่ง if ของเราไม่ได้ถูกดำเนินการเพราะเงื่อนไขของเรา –≠ คำสั่งเท่ากับ “Ham Sandwich” – ไม่เป็นไปตามเงื่อนไข
ถ้าเป็นอย่างอื่น
if
คำสั่งมีประโยชน์ แต่ถ้าคุณต้องการทำอย่างอื่นถ้าเงื่อนไขของคุณไม่ประเมินเป็นจริง นั่นคือที่มาของคำสั่ง Java if else ที่มีชื่อเหมาะเจาะ
สมมติว่าเราต้องการให้โปรแกรมของเราพิมพ์:This item is not on the menu.
หากไม่พบคำสั่งซื้อที่เราป้อน เราสามารถทำได้โดยเพิ่มบล็อกอื่นในโค้ดของเรา:
String order = "Chicken Mayo Sandwich"; if (order.equals("Ham Sandwich")) { System.out.println("The price of a " + order + " is $1.95. "); } System.out.println("Done");
หากนิพจน์ของเราประเมินเป็นเท็จ เนื้อหาของ else
. ของเรา คำสั่งจะดำเนินการ เมื่อคุณบันทึกและเรียกใช้โปรแกรม คุณจะเห็นสิ่งต่อไปนี้:
This item is not on the menu. Done
เมื่อเราเปลี่ยนคำสั่งกลับเป็น “แฮมแซนวิช” ผลลัพธ์ที่เราได้รับในตัวอย่างที่แล้วจะถูกส่งคืน
ถ้าคำสั่งอื่น
if..else
คำสั่งสามารถจัดการกับผลลัพธ์ที่เป็นไปได้สองประการ:ไม่ว่าเงื่อนไขจะตรงตามเงื่อนไขหรือไม่ตรงตามเงื่อนไข เราสามารถใช้คำสั่งที่เรียกว่า else if
เพื่อประเมินเงื่อนไขเพิ่มเติม
สมมติว่าเราต้องการตรวจสอบแซนวิชที่แตกต่างกันสามแบบในโปรแกรมของเรา ราคาของพวกเขาคือ:
- แซนวิชแฮม:$1.95
- แซนด์วิชไก่มาโย:$2.20
- แซนวิชแซลมอนรมควัน:$3.00
เพื่อให้โปรแกรมของเราใช้งานได้ เราจะเพิ่ม else if
. อีกสองสามตัว คำสั่ง:
String order = "Chicken Mayo Sandwich"; if (order.equals("Ham Sandwich")) { System.out.println("The price of a " + order + " is $1.95. "); } else { System.out.println("This item is not on the menu."); } System.out.println("Done");
ขณะนี้โปรแกรมของเราสามารถส่งคืนผลลัพธ์ที่เป็นไปได้สี่รายการ หากเราเรียกใช้โปรแกรมข้างต้น เราจะได้รับคำตอบดังต่อไปนี้:
The price of a Chicken Mayo Sandwich is $2.20. Done
มาเปลี่ยนค่าของตัวแปรคำสั่งของเราเป็น “Smoked Salmon Sandwich” และเปิดโปรแกรมของเราอีกครั้ง:
The price of a Smoked Salmon Sandwich is $3.00. Done
คุณจะเห็นว่าขณะนี้โปรแกรมของเราสามารถประเมินเงื่อนไขต่างๆ ได้หลายแบบ เราสามารถเพิ่มได้มากเท่าที่เราต้องการ หากเราเปิดร้านกาแฟ เราอาจต้องการประเมินตามเงื่อนไข 10 ข้อ เงื่อนไขหนึ่งสำหรับแต่ละแซนวิชที่เราขาย
บทสรุป (และความท้าทาย)
หากคำสั่งอนุญาตให้คุณควบคุมการไหลของโปรแกรมของคุณได้อย่างมีประสิทธิภาพมากขึ้น รหัสภายใน if
คำสั่งจะทำงานก็ต่อเมื่อเงื่อนไขที่ระบุเป็นจริง คุณสามารถใช้ else...if
คำสั่งเพื่อตรวจสอบว่าตรงตามเงื่อนไขข้อใดข้อหนึ่งหรือไม่ และ else
คำสั่งให้ทำบางสิ่งถ้าไม่ตรงตามเงื่อนไข
พร้อมสำหรับความท้าทาย? เขียนโปรแกรมที่คำนวณเกรดของนักเรียนในการทดสอบตามเกรดที่เป็นตัวเลข ขอบเขตเกรดสำหรับอ้างอิงมีดังต่อไปนี้
- 85+ คือ A
- 75+ เป็นตัว B
- 65+ คือ C
- 50+ คือดี
- ต่ำกว่า 50 คือ F
ตอนนี้คุณพร้อมที่จะเริ่มเขียนคำสั่ง if ใน Java อย่างมืออาชีพแล้ว!