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:
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; } } }
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); } }
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); } }
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; } } }
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