Usando el rango en el caso del interruptor en C/C++

Todos ustedes están familiarizados con el cambio de mayúsculas y minúsculas en C/C++, pero ¿sabían que pueden usar un rango de números en lugar de un solo número o carácter en la declaración de mayúsculas y minúsculas?

  • Esa es la extensión del rango de casos del compilador GNU C y no C o C++ estándar
  • Puede especificar un rango de valores consecutivos en una sola etiqueta de caso, así:
case low ... high:
  • Se puede usar para rangos de códigos de caracteres ASCII como este:
 case 'A' ... 'Z':
  • Necesita escribir espacios alrededor de las elipses . Por ejemplo, escribe esto:
// Correct  -   case 1 ... 5:
// Wrong -    case 1...5: 

C++

// C++ program to illustrate
// using range in switch case
#include <iostream>
using namespace std;
int main()
{
    int arr[] = { 1, 5, 15, 20 };
 
    for (int i = 0; i < 4; i++)
    {
        switch (arr[i])
        {
        case 1 ... 6:
            cout << arr[i] <<" in range 1 to 6\n";
            break;
        case 19 ... 20:
            cout << arr[i] <<" in range 19 to 20\n";
            break;
        default:
            cout << arr[i] <<" not in range\n";
            break;
        }
    }
    return 0;
}
 
 //This code is contributed by shivanisinghss2110

C

// 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\n", arr[i]);
            break;
        case 19 ... 20:
            printf("%d in range 19 to 20\n", arr[i]);
            break;
        default:
            printf("%d not in range\n", arr[i]);
            break;
        }
    }
    return 0;
}

Producción: 

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

Complejidad de tiempo: O(n), donde n es el tamaño de la array arr.

Espacio auxiliar: O (1)
Ejercicio: puede probar el programa anterior para la array de caracteres modificando la array de caracteres y la declaración de caso.
Condiciones de error: 

  1. bajo > alto: el compilador da un mensaje de error.
  2. Valores de casos superpuestos: si el valor de una etiqueta de caso está dentro de un rango de casos que ya se ha utilizado en la declaración de cambio, el compilador da un mensaje de error.

Este artículo es una contribución de Mandeep Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *