Declaración de cambio en C#

En C#, la declaración Switch es una declaración de rama multidireccional. Proporciona una forma eficiente de transferir la ejecución a diferentes partes de un código en función del valor de la expresión. La expresión de cambio es de tipo entero, como int, char, byte o short, o de tipo enumeración, o de tipo string. La expresión se verifica para diferentes casos y se ejecuta la única coincidencia.

Sintaxis:

switch (expression) {

case value1: // statement sequence
     break;

case value2: // statement sequence
     break;
.
.
.
case valueN: // statement sequence
     break;

default:    // default statement sequence
}

Diagrama de flujo:

switch statement in C#

Puntos importantes a recordar:

  • En C#, no se permiten valores de mayúsculas y minúsculas duplicados.
  • El tipo de datos de la variable en el conmutador y el valor de un caso deben ser del mismo tipo.
  • El valor de un caso debe ser una constante o un literal. No se permiten variables.
  • La sentencia break in switch se usa para terminar la secuencia actual.
  • La declaración predeterminada es opcional y se puede usar en cualquier lugar dentro de la declaración de cambio.
  • No se permiten declaraciones predeterminadas múltiples.

Ejemplo:

// C# program to illustrate
// switch case statement
using System;
  
public class GFG {
  
    // Main Method
    public static void Main(String[] args)
    {
        int nitem = 5;
        switch (nitem) {
  
        case 1:
            Console.WriteLine("case 1");
            break;
  
        case 5:
            Console.WriteLine("case 5");
            break;
  
        case 9:
            Console.WriteLine("case 9");
            break;
  
        default:
            Console.WriteLine("No match found");
            break;
        }
    }
}
Producción:

case 5

¿Por qué usamos declaraciones Switch en lugar de declaraciones if-else?

Usamos una declaración de cambio en lugar de declaraciones if-else porque la declaración if-else solo funciona para una pequeña cantidad de evaluaciones lógicas de un valor. Si usa la declaración if-else para un mayor número de condiciones posibles, se tarda más en escribir y también se vuelve más difícil de leer.

Ejemplo: uso de la instrucción if-else-if

// C# program to illustrate
// if-else statement
using System;
  
class GFG {
  
    // Main Method
    public static void Main(String[] args)
    {
        // taking two strings value
        string topic;
        string category;
  
        // taking topic name
        topic = "Inheritance";
  
                // using compare function of string class
        if ((String.Compare(topic, "Introduction to C#") == 0) || 
            (String.Compare(topic, "Variables") == 0) || 
            (String.Compare(topic, "Data Types") == 0))
        {
            category = "Basic";
        }
          
                // using compare function of string class
        else if ((String.Compare(topic, "Loops") == 0) || 
                 (String.Compare(topic, "If Statements") == 0) || 
                 (String.Compare(topic, "Jump Statements") == 0)) 
        {
            category = "Control Flow";
        }
              
                // using compare function of string class
        else if ((String.Compare(topic, "Class & Object") == 0) || 
                 (String.Compare(topic, "Inheritance") == 0) || 
                 (String.Compare(topic, "Constructors") == 0)) 
        {
            category = "OOPS Concept";
        }
          
        else 
        {
            category = "Not Mentioned";
        }
  
        System.Console.Write("Category is " + category);
    }
}
Producción:

Category is OOPS Concept

Explicación: Como se muestra en el programa anterior, el código no es excesivo, pero parece complicado de leer y llevó más tiempo escribirlo. Entonces usamos una declaración de cambio para ahorrar tiempo y escribir código optimizado. El uso de la instrucción switch proporcionará una mejor legibilidad del código.

Ejemplo: Uso de la instrucción Switch

// C# program to illustrate
// switch statement
using System;
  
class GFG {
  
    // Main Method
    public static void Main(String[] args)
    {
        // taking two strings value
        string topic;
        string category;
  
        // taking topic name
        topic = "Inheritance";
          
        // using switch Statement
        switch(topic)
        {
            case "Introduction to C#":
            case "Variables":
            case  "Data Types":
                   
                category = "Basic";
                break;
                  
             case "Loops":
             case"If Statements":
             case"Jump Statements":
                   
                category = "Control Flow";
                break;
                  
             case "Class & Object":
             case "Inheritance":
             case "Constructors":
                   
                category = "OOPS Concept";
                break;
                  
             // default case 
             default:
                category = "Not Mentioned";
                break;
                  
        }
          
        System.Console.Write("Category is " + category);
    }
}
Producción:

Category is OOPS Concept

Uso de goto en la instrucción Switch

También puede usar la instrucción goto en lugar de la interrupción en la instrucción switch. En general, usamos una declaración de ruptura para salir de la declaración de cambio. Pero en algunas situaciones, se requiere que se ejecute la declaración predeterminada, por lo que usamos la declaración goto. Permite ejecutar la condición predeterminada en la declaración de cambio. La declaración goto también se usa para saltar a una ubicación etiquetada en el programa C#.

Ejemplo:

// C# program to illustrate the
// use of goto in switch statement
using System;
  
public class GFG {
  
// Main Method
public static void Main(String[] args)
    {
        int greeting = 2;
  
        switch (greeting) {
        case 1:
            Console.WriteLine("Hello");
            goto default;
        case 2:
            Console.WriteLine("Bonjour");
            goto case 3;
        case 3:
            Console.WriteLine("Namaste");
            goto default;
        default:
            Console.WriteLine("Entered value is: " + greeting);
            break;
        }
    }
}
Producción:

Bonjour
Namaste
Entered value is: 2

Explicación: En el programa anterior, la sentencia goto se usa en una sentencia switch. Aquí primero se imprime el caso 2, es decir, Bonjour porque el interruptor contiene el valor de saludo es 2, luego el control se transfiere al caso 3 debido a la presencia de la instrucción goto, por lo que se imprime Namaste y, por último, el control se transfiere al valor predeterminado. condicionar e imprimir El valor introducido es: 2.

Nota: También puede usar continuar en lugar de una interrupción en la declaración de cambio si su declaración de cambio es parte de un ciclo, entonces la declaración de continuación hará que la ejecución regrese instantáneamente al inicio del ciclo.

Publicación traducida automáticamente

Artículo escrito por ankita_saini 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 *