Tutorialspoint.dev

Using range in switch case in C/C++


You all are familiar with switch case in C/C++, but did you know you can use range of numbers instead of a single number or character in case statement.

  • That is the case range extension of the GNU C compiler and not standard C or C++
  • You can specify a range of consecutive values in a single case label, like this:
    case low ... high:
  • It can be used for ranges of ASCII character codes like this:
     case 'A' ... 'Z':
  • You need to Write spaces around the ellipses. For example, write this:
    // Correct  -   case 1 ... 5:
    // Wrong -    case 1...5:
// C program to illustrate
// using range in switch case
#include <stdio.h>
int main()
{
    int arr[] = { 1, 5, 15, 20 };
  
    for (int i = 0; i < 4; i++) 
    {
        switch (arr[i]) 
        {
        case 1 ... 6:
            printf("%d in range 1 to 6 ", arr[i]);
            break;
        case 19 ... 20:
            printf("%d in range 19 to 20 ", arr[i]);
            break;
        default:
            printf("%d not in range ", arr[i]);
            break;
        }
    }
    return 0;
}

Output:

1 in range 1 to 6
5 in range 1 to 6
15 not in range
20 in range 19 to 20

Exercise : You can try above program for char array by modifying char array and case statement.

Error conditions:

  1. low > high : The compiler gives with an error message.
  2. Overlapping case values : If the value of a case label is within a case range that has already been used in the switch statement, the compiler gives an error message.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter