ใน C หรือ C++ เราสามารถใช้ช่วงค่า (range) ในคำสั่ง switch-case ได้ ไวยากรณ์คือ:
case low ... high
หลังคีย์เวิร์ด case ให้ระบุค่าต่ำสุด แล้วเว้นวรรค 1 ช่อง ตามด้วยจุด 3 จุด (...) อีกครั้ง เว้นวรรค 1 ช่อง และระบุค่าสูงสุด
ตัวอย่าง
#include <stdio.h>
int main() {
int data[10] = { 5, 4, 10, 25, 60, 47, 23, 80, 14, 11 };
int i;
for (i = 0; i < 10; i++) {
switch (data[i]) {
case 1 ... 10:
printf("%d in range 1 to 10\n", data[i]);
break;
case 11 ... 20:
printf("%d in range 11 to 20\n", data[i]);
break;
case 21 ... 30:
printf("%d in range 21 to 30\n", data[i]);
break;
case 31 ... 40:
printf("%d in range 31 to 40\n", data[i]);
break;
default:
printf("%d Exceeds the range\n", data[i]);
break;
}
}
return 0;
}
ผลลัพธ์
5 in range 1 to 10 4 in range 1 to 10 10 in range 1 to 10 25 in range 21 to 30 60 Exceeds the range 47 Exceeds the range 23 in range 21 to 30 80 Exceeds the range 14 in range 11 to 20 11 in range 11 to 20