GCC एक्सटेंशन के रूप में, C/C++ में switch-case स्टेटमेंट में रेंज (श्रेणी) उपयोग की जा सकती है। यह मानक C/C++ का हिस्सा नहीं है, लेकिन GCC और Clang में समर्थित है।
सिंटैक्स
case low ... high:
lowऔरhighके बीच तीन डॉट्स (...) और स्पेस आवश्यक हैं।- रेंज समावेशी (inclusive) होती है।
उदाहरण
#include <stdio.h>
int main() {
int data[10] = {5, 4, 10, 25, 60, 47, 23, 80, 14, 11};
for (int 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
पोर्टेबिलिटी नोट
- यह **GNU एक्सटेंशन** है, ISO C/C++ मानक का भाग नहीं।
- MSVC (विजुअल स्टूडियो) में समर्थित नहीं।
- पोर्टेबल कोड के लिए
if-elseचेन या लुकअप टेबल उपयोग करें।