การเลือกทำแบบทางเดียว (if statement)
การเลือกทำแบบทางเดียว (if statement)
ในภาษาจาวาจะใช้คำสั่ง if เลือกทำแบบทางเดียวเพื่อจะตรวจสอบว่าชุดคำสั่งที่ตามมาจะทำหรือไม่ ในการทำงานของคำสั่งคอมพิวเตอร์จะตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงจะทำคำสั่งหรือสเตตเมนต์ที่ตามหลังหรือเป็นสเตตเมนต์รวมที่อยู่ในเครื่องหมาย { } แต่ถ้าเงื่อนไขเป็นเท็จคอมพิวเตอร์จะกระโดดข้ามคำสั่งหรือสเตตเมนต์ตามมาและไปทำคำสั่งหรือสเตตเมนต์ต่อไป รูปแบบคำสั่งเป็นดังต่อไปนี้ รูปแบบ If(condition) {action statement} โดยการตรวจสอบเงื่อนไขจะเป็นการกระทำแบบบูลีน ผลลัพธ์ที่ได้จะเป็นจริงหรือเท็จเท่านั้นถ้าหากมีการใช้ตัวดำเนินการจะใช้ตัวดำเนินการที่ให้ผลลัพธ์เป็นแบบบูลีน สำหรับการทำงานของคำสั่ง if สารถเขียนเป็นผังงานได้ดังนี้ |
|
ตัวอย่าง โปรแกรมต่อไปนี้จะตรวจสอบว่า x มากกว่า y จริงหรือไม่ ถ้าหาก x มากกว่า y จริงโปรแกรมจะทำคำสั่งต่อมา
ตัวอย่าง ถ้าหากการเขียนโปรกรมตรวจสอบว่า x มากกว่า y และน้อยกว่า 10 หรือไม่ ถ้าเป็นจริงให้แสดงตัวเลข x ออกมาจะสามารถเขียนได้ดังนี้
ตัวอย่าง ถ้าหากตัวแปร mark เก็บคะแนน และต้องการตรวจสอบว่าถ้าคะแนนมากกว่า 80 และน้อยกว่าหรือเท่ากับ 100 ให้ได้เกรด A จะเขียนคำสั่ง if ได้เป็น
ในการตรวจสอบเงื่อนไขนั้นตัวแปรที่นำมาเปรียบเทียบจะต้องเป็นข้อมูลประเภทเดียวกัน ตัวอย่าง เช่น
ถ้าให้ ch เป็น char ให้ num และ mark เป็น int การตรวจสอบเงื่อนไขอาจเขียนได้ดังนี้
ถ้าให้ ch เป็น char ให้ num และ mark เป็น int การตรวจสอบเงื่อนไขอาจเขียนได้ดังนี้
ตัวอักขระสองตัวสามารถนำมาเปรียบเทียบกันได้เช่นกัน เนื่องจากภาจาวาจะเก็บตัวอักขระในรูปของรหัสยูนิโค้ด (Unicode) เมื่อมีการเปรียบเทียบภาษาจาวาจะนำเอารหัสยูนิโค้ด ซึ่งอยู่ในรูปของเลขจำนวนเต็มมาเปรียบเทียบกัน อย่างเช่น ตัว A จะมาก่อนตัว B เนื่องจากรหัสของตัว A คือ 65 ส่วนรหัสของตัว B คือ 66 ดังนั้น ถ้าหากเขียนนิพจน์เป็น A<B จะได้ค่าเป็นจริงเสมอ และถ้าหากมีการเขียนสเตตเมนต์ต่อไปนี้
จะทำให้การตรวจสอบเงื่อนไขของ if เป็นจริงเสมอ
ในการใช้คำสั่งตรวจสอบเงื่อนไข ควรระวังดังต่อไปนี้
1.ระวังอย่าใส่เคืร่องหมายเซมิดคลอน ( ; ) หลังการตรวจสอบเงื่อนไขของ if เนื่องจากถ้าคอมไพล์เลอร์พบเครื่องหมายเซมิโคลอนมันจะมองเป็นสเตตเมนต์ว่าง ( null statement ) คือไม่ทำอะไร
ในการใช้คำสั่งตรวจสอบเงื่อนไข ควรระวังดังต่อไปนี้
1.ระวังอย่าใส่เคืร่องหมายเซมิดคลอน ( ; ) หลังการตรวจสอบเงื่อนไขของ if เนื่องจากถ้าคอมไพล์เลอร์พบเครื่องหมายเซมิโคลอนมันจะมองเป็นสเตตเมนต์ว่าง ( null statement ) คือไม่ทำอะไร
2.ถ้าหากสเตตเมนต์ที่ต้องการให้ทำหลัง if เป็นสเตตเมนต์รวม หรือมีการทำหลายๆ คำสั่ง จะต้องใส่เครื่องหมายวงเล็บ เพื่อรวมสเตตเมนต์เป็นบล็อก ตัวอย่างเช่น
จากส่วนของโปรแกรมทางซ้ายมือ สเตตเมนต์รวมที่อยู่ในเครื่องหมายปีกกาจะทำทั้งหมดถ้าหากเงื่อนไขของ if เป็นจริง แต่ส่วนของโปรแกรมทางขวามือ ถ้าหากเงื่อนไขของ if เป็นจริงจะทำ bonus = 500.0สเตตเมนต์เดียวกัน