💬 หลังจากที่เราได้เห็นการตัดสินใจของคอมพิวเตอร์ผ่านคำสั่ง IF statements กันไปบ้างละ ในรอบนี้เราลองมาดูการตัดสินใจแบบง่ายๆด้วยคำสั่งที่เรียกว่า Switch statements กันดูบ้างนะครับ
switch( EXPRESSION ){case PATTERN1:// ถ้า expression ตรงกับ pattern 1 จะเข้ามาที่งานที่นี่break;case PATTERN2:// ถ้า expression ตรงกับ pattern 2 จะเข้ามาที่งานที่นี่break;default:// ถ้า expression ไม่ตรงกับ pattern ไหนเลยจะเข้ามาทำงานที่นี่break;}
เกร็ดความรู้ 1 ในการเขียน switch นั้นเราสามารถใส่วงเล็บ { } ลงไปใน case หรือ default ได้นะจ๊ะ เพื่อเป็นการบอกว่า scope ของการทำงานอยู่ที่ไหน ตามตัวอย่าง code ด้านล่าง
switch( EXPRESSION ){case PATTERN1:{// ถ้า expression ตรงกับ pattern 1 จะเข้ามาที่งานที่นี่break;}...}
เกร็ดความรู้ 2 เราสามารถรวม case ที่ทำงานเหมือนกันเอาไว้ด้วยกันได้ และ รวมถึงการรวม case default ด้วยเช่นกัน ตาม code ด้านล่าง
switch( EXPRESSION ){default:case PATTERN1:case PATTERN2:case PATTERN3:{// ถ้า expression ตรงกับ pattern 1,2,3// หรือไม่ตรงกับ pattern อื่นๆเลยจะเข้ามาที่งานที่นี่break;}...}
ในภาษา C# รุ่นใหม่ๆจะรองรับการใช้สิ่งที่เรียกว่า Type pattern แล้ว โดยเราสามารถเอาชนิดข้อมูลมาใช้เป็นเงื่อนไขได้
switch( EXPRESSION ){case int a:// ถ้า expression เป็น int จะเข้ามาที่งานที่นี่break;case double b:// ถ้า expression เป็น double จะเข้ามาที่งานที่นี่break;...}
switch( EXPRESSION ){case int a when a > 12:// ถ้า expression เป็น int และมีค่ามากกว่า 12 จะเข้ามาที่งานที่นี่break;...}