การควบคุมเงื่อนไขด้วย switch-case (switch-statement)
นอกจากประโยคคำสั่ง if-else แล้วในภาษา c ก็ยังมีการควบคุมเงื่อนไขด้วยการใช้ประโยคคำสั่ง switch
โดยประโยคคำสั่ง switch เหมาะกับการนำไปประยุกต์ใช้กับโปรแกรมที่มีเมนูให้เลือกรายการต่างๆ การใช้ switch-case
จะต้องเป็นตัวแปรแบบ int เท่านั้น
รูปแบบ :
switch (integer_expression)
{
case constant_1;
statement_1;
break;case constant_2;
statement_2;
break;case constant_3;
statement_3;
break;default;
statement;}
ผลการตรวจสอบเงื่อนไข จะขึ้นอยู่กับค่า integer ถ้าเงื่อนไขที่ตรวจสอบอยู่ภายในเงื่อนไขที่กำหนด
ก็จะทำงานชุดคำสั่งภายในเงื่อนไขนั้น แต่ถ้าหากไม่พบเงื่อนไขตามที่กำหนดไว้เลย ก็จะไปทำชุดคำสั่ง
ที่ default แทน เงื่อนไขของแต่ละ case นั้นควรบรรจุคำสั่ง break เข้าไปด้วยทั้งนี้เพื่อป้องกันมิให้
ตรวจสอบเงื่อนไขถัดไป ส่วนกรณี default นั้นไม่จำเป็นต้องมีคำสั่ง break
ข้อแตกต่างระหว่างประโยคคำสั่ง if-else และ switch
1. นิพจน์ชนิดตังเลขจำนวนจริง ที่มีจุดทศนิยมจะนำมาตรวจสอบด้วย switch ไม่ได้
2. ชนิดข้อมูลที่สามารถนำมาใช้ตรวจสอบใน switch คือชนิดข้อมูลแบบ int หรือ char
3. การตรวจสอบค่าใน case ของ switch แต่ละกรณีไม่สามารถนำค่าตัวแปรมาใช้ได้ เช่น case a+1: ถือว่าใช้งานไม่ได้
4. switch ไม่สามารถตรวจสอบหลายๆ เงื่อนไขภายในนิพจน์เดียวกันได้ เช่น
switch(num)
{
case > 0 && <5
: :
}
ตัวอย่าง การเขียนโปรแกรมโดยใช้ switch case
#include <stdio.h>
main()
{
int x;
printf("Pleas Enter Number 1-4 = ");
scanf("%d",&x);
switch (x)
{
case 1:
printf("You choose 1");
break;
case 2:
printf("You choose 2");
break;
case 3:
printf("You choose 3");
break;
case 4:
printf("You choose 4");
break;
default:
printf("You didn't choose 1,2,3 or 4");
}
}
==> แสดงผล "ป้อนตัวเลขช่วง 1 - 4"ผ่านทางหน้าจอ ==> รับค่า x เป็นจำนวนเต็ม ==> ปริ้น You choose 1 เมื่อกดเลข 1 ==> ปริ้น You choose 2 เมื่อกดเลข 2 ==> ปริ้น You choose 3 เมื่อกดเลข 3 ==> ปริ้น You choose 4 เมื่อกดเลข 4 ==> ปริ้น You didn't choose 1,2,3 or 4 เมื่อกดเลขที่ไม่ได้อยู่ในช่วง 1-4