Saltar al pie de página
Iron Academy Logo
Aprender C#
Aprender C#

Otras categorías

Caso de cambio a C#

Layla Porter
20m 21s

La sentencia switch en C# es un potente mecanismo de flujo de control que permite a los desarrolladores ejecutar un bloque de código entre muchos otros en función del valor de una expresión. Resulta especialmente útil en situaciones en las que es necesario comprobar varias condiciones en una única variable. Los operadores pueden emplearse en casos de conmutación para realizar diversas acciones en expresiones de coincidencia, como comparaciones y comprobaciones lógicas.

Layla Porter, en su vídeo sobre "C# para principiantes parte 4 - Operadores y conmutadores", se sumerge en los conceptos fundamentales de la programación en C#, centrándose en los operadores y las sentencias switch case. Este artículo, inspirado en su vídeo, desglosará sus explicaciones y proporcionará fragmentos de código de su vídeo para comprender los casos de conmutación y los operadores.

Introducción a los operadores

Los operadores en C# son cruciales para manipular datos, comparar valores y tomar decisiones basadas en valores y comparaciones. Layla comienza explicando los distintos tipos de operadores: aritméticos, de comparación y lógicos.

Introducción del usuario mediante Console.ReadLine

Layla comienza demostrando cómo capturar la entrada del usuario usando Console.ReadLine(). Este método lee una línea de entrada de la consola, lo que resulta esencial para las aplicaciones interactivas en C#.

Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();
Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();

Operador de asignación

En el fragmento de código anterior, Layla utiliza el operador de asignación (=) para almacenar el valor obtenido de la entrada del usuario en la variable word. He aquí un desglose:

  • string word: Declara una variable llamada word de tipo string.

  • word = Console.ReadLine(): Utiliza el operador de asignación (=) para asignar el valor introducido por el usuario (obtenido de Console.ReadLine()) a la variable word.

En este contexto, el operador de asignación se usa para establecer el valor de la variable word a lo que sea que el usuario escriba en la consola. El operador de asignación es fundamental en programación, ya que se utiliza para almacenar valores en variables, permitiendo que esos valores se utilicen y manipulen a lo largo de la ejecución del programa.

Operadores aritméticos

Los operadores aritméticos en C# realizan operaciones matemáticas básicas como sumas, restas, multiplicaciones, divisiones y módulos. Estos operadores son sencillos y esenciales para cualquier lenguaje de programación. Layla no trata estos temas en su vídeo porque se trata de operaciones matemáticas sencillas que devuelven los mismos valores exactos que en los problemas matemáticos reales.

Operadores de comparación

Los operadores de comparación en C# nos permiten comparar valores y tomar decisiones basadas en esas comparaciones. Layla introduce los operadores mayor que (>), menor que (<), mayor o igual a (>=), menor o igual a (<=), igualdad (==) y desigualdad (!=).

Uso de operadores de comparación en sentencias de lógica condicional

En su vídeo, Layla Porter se sumerge en el uso de la lógica condicional en C# para determinar la longitud de una palabra proporcionada por el usuario. Ella, a las 2:10, comienza demostrando la estructura básica de una sentencia if para verificar la longitud de una cadena usando la propiedad Length del tipo string. Esta propiedad devuelve el número de caracteres de la cadena.

if (word.Length < 6)
{
    Console.WriteLine("That's a short word.");
}
if (word.Length < 6)
{
    Console.WriteLine("That's a short word.");
}

La primera verificación condicional utiliza el operador menor que (<) para ver si la longitud de la palabra es menor a seis caracteres. Si la condición es verdadera, el programa dice: "Es una palabra corta" Esta parte del código ayuda a categorizar eficazmente las palabras más cortas.

A continuación, a las 4:00, Layla Porter introduce el concepto de usar una sentencia else if con condiciones combinadas usando el operador mayor o igual a (>=) y el operador lógico AND (&&). La condición combinada comprueba si la longitud de la palabra es de al menos seis pero menos de once caracteres. Si se cumplen ambas condiciones, el programa dice: "Es una palabra de longitud media" Esto muestra cómo se pueden combinar varias condiciones para tomar decisiones más precisas en función de la longitud de la palabra.

else if (word.Length >= 6 && word.Length < 11)
{
    Console.WriteLine("That's a medium length word.");
}
else if (word.Length >= 6 && word.Length < 11)
{
    Console.WriteLine("That's a medium length word.");
}

Por último, Layla, en el minuto 4:40, explica el uso de la sentencia else para manejar todos los demás casos que no cumplan las condiciones anteriores. Esta parte del código muestra el mensaje "That's a long word." para palabras de once caracteres o más. El uso de la sentencia else garantiza que cualquier entrada no capturada por las condiciones anteriores se gestione adecuadamente.

else
{
    Console.WriteLine("That's a long word.");
}
else
{
    Console.WriteLine("That's a long word.");
}

Ahora, Layla ejecuta el programa (5:15) e introduce algunas palabras para categorizarlas utilizando las sentencias condicionales y los operadores de comparación anteriores:

Csharp Switch Case 1 related to Uso de operadores de comparación en sentencias de lógica condicional

Operadores lógicos

Operadores lógicos &&, ||, ! permiten combinar múltiples condiciones en C# para crear lógica de toma de decisiones más compleja. Layla, en el minuto 6:24, explica cómo se combinan estos operadores para crear sentencias condicionales.

En su vídeo, Layla Porter presenta un minijuego en el que se pide al usuario que identifique la palabra impar de una lista de animales: "perro", "gato" y "pez dorado" El pez dorado se considera la palabra rara porque vive en el agua y no es un mamífero. Layla (6:55) comienza pidiendo al usuario que introduzca su elección usando Console.ReadLine() y luego asegura que la entrada esté en minúsculas usando el método ToLower() para evitar problemas de sensibilidad de mayúsculas al comparar cadenas:

Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();
Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();

Layla, en el minuto 7:32, explica el uso de los operadores de comparación para cotejar la entrada del usuario con el sistema y la lista predefinida de animales.

if (oddOne != "dog" && oddOne != "cat")
{
    Console.WriteLine("You chose the odd one out!");
}
if (oddOne != "dog" && oddOne != "cat")
{
    Console.WriteLine("You chose the odd one out!");
}

El código usa el operador no igual a (!=) para verificar si la entrada no coincide con "dog" y "cat". Al combinar estas condiciones con el operador lógico AND (&&), el código asegura que ambas condiciones deben ser verdaderas para que la sentencia se satisfaga. Si la entrada no es ni "perro" ni "gato", debe ser "pez dorado", y el programa emite el mensaje "¡Elegiste el raro!"

else
{
    Console.WriteLine("Better luck next time!");
}
else
{
    Console.WriteLine("Better luck next time!");
}

Si la entrada del usuario no satisface esta condición, es decir, si la entrada es o bien "perro" o bien "gato", se ejecuta el bloque else y el programa emite "¡Más suerte la próxima vez!"

Csharp Switch Case 2 related to Operadores lógicos

Layla (8:30) profundiza en la importancia de entender cómo funcionan los operadores lógicos en las sentencias condicionales. El operador AND (&&) requiere que ambas condiciones sean verdaderas, mientras que el operador OR (||) sólo requiere que se cumpla una condición. Ella (9:05) demuestra cómo el uso de estos operadores puede cambiar el comportamiento del programa, poniendo de relieve los matices y los peligros potenciales cuando se utilizan operadores lógicos en C#. Esta explicación ayuda a los espectadores a comprender cómo utilizar eficazmente la lógica condicional en sus programas.

Introducción a las sentencias Switch Case de C

Las sentencias switch proporcionan una forma alternativa de implementar la toma de decisiones multibifurcadas en C#, a menudo más legible y eficiente que múltiples sentencias if-else. En C#, 'case c' se utiliza para especificar condiciones dentro de sentencias switch, asegurando que la comparación opera sobre valores del mismo tipo.

En su vídeo (12:38), Layla Porter pasa de utilizar una sentencia if-else a una sentencia switch para determinar la categoría de longitud de una palabra dada. Explica que el uso de una sentencia switch puede hacer que el código sea más limpio y eficiente.

El fragmento de código tiene este aspecto:

switch (word.Length)
{
    case < 6:
        Console.WriteLine("That's a short word!");
        break;
    case int length when 6 <= length && length < 11:
        Console.WriteLine("That's a medium length word!");
        break;
    default:
        Console.WriteLine("That's a long word!");
        break;
}
switch (word.Length)
{
    case < 6:
        Console.WriteLine("That's a short word!");
        break;
    case int length when 6 <= length && length < 11:
        Console.WriteLine("That's a medium length word!");
        break;
    default:
        Console.WriteLine("That's a long word!");
        break;
}

Layla explica que una sentencia switch se compone de varios casos, cada uno de los cuales representa un posible valor o rango de valores para la variable que se está evaluando. En este caso, la variable es word.Length.

  1. Caso < 6: El primer caso comprueba si la longitud de la palabra es inferior a 6. Si se cumple esta condición, el programa dice "¡Es una palabra corta!" y utiliza la sentencia break para salir del bloque switch. Recuerde que el caso puede tener múltiples enunciados.

  2. Caso int longitud cuando 6 <= longitud && longitud < 11: El segundo caso es más complejo. Utiliza una característica de coincidencia de patrones introducida en C# 7.0. El caso se define con int length seguido de una cláusula when que especifica condiciones adicionales: la longitud debe ser mayor o igual a 6 y menor que 11. Si los patrones coinciden, el programa muestra "That's a medium length word!" y luego sale del bloque switch.

  3. Por defecto: Si no se cumple ninguno de los casos anteriores, se ejecuta el caso por defecto. Actúa como la sentencia else en una estructura if-else. En este caso, el programa dice "¡Es una palabra muy larga!" y sale del bloque de conmutación.

Layla (15:45) destaca que el uso de una sentencia switch en lugar de una sentencia if puede ser beneficioso porque hace que el código sea más legible y fácil de manejar, especialmente cuando se trata de múltiples condiciones. Además, menciona que las sentencias switch pueden ser más eficientes porque el compilador de C# las optimiza de forma diferente, lo que las hace más rápidas de ejecutar.

Expresiones de conmutación (coincidencia de patrones)

Las expresiones de conmutación son una nueva función de C# que ofrece una sintaxis más concisa para tomar decisiones sencillas basadas en valores. En el vídeo de Layla Porter, en torno al minuto 16:25, presenta una sentencia switch moderna denominada "expresión switch" o "switch de coincidencia de patrones" en C#. Este tipo de sentencia switch devuelve un valor directamente, lo que hace que el código sea más conciso y legible.

Ella (alrededor del minuto 17:00) comienza mostrando cómo reescribir una sentencia if-else utilizando la sintaxis de la expresión switch. En lugar de realizar acciones, la expresión switch asigna un valor a una variable basándose en condiciones. Por ejemplo

// Example of Switch Expression
string message = word.Length switch
{
    < 6 => "That's a short word!",
    < 11 and >= 6 => "That's a medium length word!",
    _ => "That's a long length word!"
};

Console.WriteLine(message);
// Example of Switch Expression
string message = word.Length switch
{
    < 6 => "That's a short word!",
    < 11 and >= 6 => "That's a medium length word!",
    _ => "That's a long length word!"
};

Console.WriteLine(message);

Esto es lo que explica Layla (17:31) sobre el código anterior:

  1. String message = word.Length switch: Inicializa una variable de tipo string llamada message y comienza una expresión switch basada en word.Length.

  2. < 6 => "That's a short word!": Si word.Length es menor que 6, devuelve "That's a short word!" usando el operador menor que <.

  3. < 11 and >= 6 => "That's a medium length word!": Si word.Length está entre 6 y 10 inclusive, devuelve "That's a medium length word!" usando and para claridad.

  4. _ => "¡Esa es una palabra de longitud larga!": El guión bajo sirve como caso por defecto, devolviendo "¡Esa es una palabra de longitud larga!" si no se cumple ninguna de las condiciones anteriores.

Layla subraya que esta sintaxis forma parte de las características modernas de C# diseñadas para mejorar la legibilidad y la eficiencia. La expresión switch es preferible a las tradicionales sentencias if-else para manejar múltiples condiciones de forma concisa.

Ejecuta el código a las 19:30 y la salida es la misma que para if-else:

Csharp Switch Case 3 related to Expresiones de conmutación (coincidencia de patrones)

Conclusión

El vídeo de Layla Porter proporciona una base sólida para principiantes en la programación en C#, cubriendo conceptos esenciales como operadores, sentencias condicionales y sentencias switch. Siguiendo sus explicaciones y ejemplos, los principiantes pueden adquirir conocimientos prácticos sobre cómo manipular datos y controlar el flujo del programa de forma eficaz en C#.

Al comprender estos conceptos fundamentales y practicar con los ejemplos proporcionados, los recién llegados a C# pueden construir una base sólida para tareas de programación más complejas. Echa un vistazo a más vídeos sobre C# en su Canal de YouTube.

Hero Worlddot related to Caso de cambio a C#
Hero Affiliate related to Caso de cambio a C#

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame