3.4.1
switch ข้อความสั่ง switch เป็นข้อความสั่งที่ให้เลือกทำาข้อความ สั่ง หรือกลุ่มข้อความสั่งใด ๆ โดยพิจารณาจากค่าของ นิพจน์ ถ้าค่าของนิพจน์มีคา่ เท่ากับค่าใด ก็จะเริ่ม กระทำาการข้อความสั่งที่อยู่หลังคำาหลัก case นั้น และ กระทำาการข้อความสั่งอื่นที่ตามมาทั้งหมด
switch ( {
) case
1:
11; 12;
… case
1n;
2: 21; …
…
2m;
… …
case
j:
… default :
22;
j1; j2; jp; k1; k2;
โดยที่คา่ ของนิพจน์จะต้องเป็นเลขจำานวนเต็ม หรืออักขระเท่านั้น
ข้อความสั่ง switch จะตรวจสอบนิพจน์ แล้วนำาผลไปเปรียบ เทียบกับค่าทีต ่ ามหลังคำาหลัก case ถ้าเท่ากับค่าที่ตามหลังคำาหลัก case ค่าใด ก็จะกระทำาการที่ขอ ้ ความสั่งนั้น จากนั้นจะไปกระทำาการที่ ข้อความสั่งถัดไปทุกข้อความสั่งที่ตามมา ในกรณีที่ผลลัพธ์ของ นิพจน์ไม่ตรงกับค่าทีต ่ ามหลังคำาหลัก case จะไปกระทำาการที่ ข้อความสั่งทีอ ่ ยู่หลัง default ผลลัพธ์ของนิพจน์ ต้องเป็นชนิด long,int หรือ char อย่างใดอย่างหนึ่งเท่านั้น break ข้อความสั่ง break ใช้สำาหรับควบคุมการกระทำาการ โดย บังคับให้หยุดกระทำาการข้อความสั่ง switch ป้องกันไม่ให้ กระทำาการข้อความสั่งอื่นที่ตามมาภายในข้อความสั่ง switch 3.4.2
3.5
switch
break #include<stdio.h> #include main() { int value; scanf(“%d” , &value); switch (value %2) { case 0 : printf(“Even integer\n”); break; case 1 : printf(“Odd integer\n”); } getch( ); }
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13 //14 //15
บรรทัดที่ 6 รับค่าจำานวนเต็มจากแป้นพิมพ์ แล้วนำามาเก็บไว้ ใน value บรรทัดที่ 7 คำานวณหาค่าของ value%2
ถ้า value%2 มีค่าเท่ากับ 0 จะกระทำาการบรรทัดที่ 9 ถึง 11 โดยจะแสดงข้อความ Even integer ถ้า value%2 มีค่าเท่ากับ 1 จะกระทำาการบรรทัดที่ 12 ถึง 13 โดยจะแสดงข้อความ Odd integer บรรทัดที่ 11 สัง่ ให้หยุดกระทำาการข้อความสั่ง switch