การเลือกทำแบบ Switch
การเลือกทำแบบ switch 3.5 การเลือกทำแบบ switch การเขียนโปรแกรมที่ต้องมีการเลือกทำหลายทางเลือก เราสามารถนำประโยคคำสั่ง if-else มาซ้อนกันได้ แต่ถ้าเงื่อนไขที่ต้องตัดสินใจขึ้นกับตัวแปรเดียว เราสามารถใช้คำสั่ง switch..case แทนได้ คำสั่ง switch นี้มีความซับซ้อนน้อยกว่าการนำ if-else มาเขียนซ้อนกัน และสามารถเปลี่ยนเงื่อนไขได้ง่ายอีกด้วย ตัวอย่างเช่น ถ้าเขียนโปรแกรมเป็นลักษณะเมนูดังต่อไปนี้ และให้ผู้ใช้โปรแกรมเลือกวิธีการคำนวณเข้าไปโดยป้อนค่าอินพุตเข้าไป เราสามารถเขียนโปรแกรม โดยนำค่าอินพุตที่ได้รับเข้าไปเก็บไว้ในตัวแปรตัวหนึ่ง และใช้คำสั่ง switch เลือกว่ามีค่าเท่ากับค่าใด (1,2,3,4) จากนั้นให้ไปทำงานตามที่เลือก ประโยคคำสั่ง switch..case มีรูปแบบดังนี คำสั่ง switch นี้จะนำค่าใน variable มาตรวจสอบว่าเท่ากับค่าคงที่ค่าใดหลัง case จากนั้น โปรแกรม จะไปทำ statement หลังค่าคงที่ตัวนั้น และออกจากswitch เมื่อถึงคำสั่ง break แต่ถ้าไม่เท่าค่าคงที่ค่าใดเลย โปรแกรมจะไปทำ statement หลัง default แต่ถ้าหากไม่มีคำสั่ง break โปรแกรมจะทำงานตามคำสั่งทุกๆ case แม้ว่าตัวแปรใน switch จะไม่ตรงกับ case สำหรับค่าที่ใช้ตรวจสอบจะเป็นตัวแปรนิพจน์ หรือฟังก์ชันก็ได้ สำหรับในแต่ละ case สามารถมีคำสั่งได้มากกว่าหนึ่งคำสั่งหรืออาจไม่มีก็ได้ โดยถ้าไม่มีคำสั่งโปรแกรมจะ ไปทำงานใน case ถัดไป ค่าคงที่หลัง case จะต้องเป็นแบบ char, byte, short หรือ int แล้วตามด้วยเครื่องหมายโคลอน(:) ตัวอย่างเช่นการเขียนคำสั่งต่อไปนี้ จากชุดคำสั่งที่ผ่านมา ถ้าหากค่าใน number มีค่าเท่ากับ 1 |
คอมพิวเตอร์จะพิมพ์คำว่า You entered
1.ถ้าหากมีค่าเท่ากับ 3 จะพิมพ์คำว่า You entered 3. แต่ถ้าหากไม่เท่ากับ 1, 2, 3 จะทำสเตตเมนต์หลัง default เราอาจสรุปได้ว่าคำสั่ง switch นี้จะนำค่าใสตัวแปรที่อยู่หลัง switch ไปเปรียบกับค่าคงที่ค่าต่างๆ ถ้าเท่ากับค่าคง ที่ค่าใด โปรแกรมจะไปทำคำสั่งหรือชุดคำสั่งที่อยู่หลังค่าคงที่นั้น แต่ถ้าไม่เท่ากับค่าคงที่ค่าใดเลย โปรแกรม จะทำคำสั่งที่อยู่ต่อจาก default สำหรับตัวแปรที่ใช้เลือกทำที่อยู่ตามหลัง switch จะต้องเป็นตัวแปรประเภทจำนวนเต็ม ซึ่งจะทำให้คอมพิวเตอร์สามารถเดาค่าได้ และค่าคงที่ต้องเป็นตัวแปรประเภทเดียวกับตัวแปรที่ตามหลัง case การทำงานของคำสั่ง case อาจเขียนเป็นผังงานได้ดังนี้ ตัวอย่าง ถ้าหากตัวแปร num เป็นตัวเลขจำนวนเต็ม การกำหนดค่าหลัง case ในคำสั่ง switch เช่น โปรแกรมที่ 3.9 SwitchDemo.java เป็นโปรแกรมทดสอบการเลือกทำแบบ switch โดยจะให้ป้อนตัวเลขเข้าไป เมื่อรันโปรแกรมแล้วป้อนข้อมูลเลข 2 แล้วกดคีย์ Enter จะได้ผลลัพธ์ดังนี้ แต่ถ้าหากป้อนค่า 5 เข้าไปซึ่งไม่เท่ากับค่าคงที่ใดเลย จะได้ผลลัพธ์ดังนี้ ให้ทดลองนำคำสั่ง break หลัง casa ทุกตัวออก แล้วลองรันโปรแกรมอีกครั้งแล้วสังเกตผลที่เกิดขึ้น |