Este es el quinto post del curso. Podés ver en esta categoría todos los anteriores.

Existe otra forma además del IF para poner condiciones en un programa. Estoy hablando del switch, que está presente de alguna u otra forma en la mayoría de los lenguajes de programación.

Vamos a crear un nuevo ejemplo. Esta vez, vamos a hacer una calculadora muy simple, en consola, con cuatro opciones: sumar, restar, multiplicar y dividir dos números. Hagamos esto: sobre la misma aplicación que hicimos la vez pasada, vamos a borrar toda la cláusula if (o si querés, podés hacer una nueva app y pegar las mismas líneas):

Console.WriteLine("Ingrese el primer número:");
int intPrimero = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Ingrese el segundo número:");
int intSegundo = Convert.ToInt32(Console.ReadLine());

Hasta acá, el programa arranca igual. Vamos a cambiar la palabra int a la palabra double, y la parte de ToInt32 a ToDouble, quedando:

Console.WriteLine("Ingrese el primer número:");
double dblPrimero = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Ingrese el segundo número:");
double dblSegundo = Convert.ToDouble(Console.ReadLine());

double es un nuevo tipo de variable para nosotros, que es un número con decimal de “precisión doble” computacional, que sería algo así como preciso hasta 17 números después de la coma. Más que suficiente para una simple calculadora de prueba. También cambié los prefijos int por dbl, por convención.

Ahora, deberíamos mostrar un mensajito en pantalla que muestre las cuatro opciones de la calculadora. Lo podemos hacer, como siempre, con un Console.WriteLine:

Console.WriteLine("Ingrese el primer número:");
double intPrimero = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Ingrese el segundo número:");
double intSegundo = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Ingresá tu opción según corresponda: \n\n1) Sumar \n2) Restar\n3) Multiplicar\n4) Dividir");

Vas a ver que en el código aparece “\n”. Esto lo que hace es hacer un salto de línea, y que se escriba una nueva. El mismo efecto se consigue haciendo un nuevo console.writeline por cada línea, pero de esta manera escribo menos código.

Ahora, vamos a guardar la opción seleccionada en una variable byte (que toma hasta 255 enteros):

byte bytOpcion = Convert.ToByte(Console.ReadLine());

Y ahora sí, tenemos todo lo necesario. Ya podemos calcular. Para ello, vamos usar la cláusula switch, arrancando de esta manera:

switch (bytOpcion)

La instrucción switch evalúa una variable y según su valor, toma una opción. Inmediatamente después, abrimos una llave { y la cerramos }.

En el medio, vamos a escribir lo siguiente:

case 1:
        Console.WriteLine(dblPrimero + dblSegundo);
        break;
    case 2:
        Console.WriteLine(dblPrimero - dblSegundo);
        break;
    case 3:
        Console.WriteLine(dblPrimero * dblSegundo);
        break;
    case 4:
        Console.WriteLine(dblPrimero / dblSegundo);
        break;
    default:
        Console.WriteLine("Opción inválida");
        break;

Vemos que del 1 al 4, las opciones configuradas, hay una palabra case antes, y luego una instrucción, que es simplemente en este caso la operación que queremos hacer. Para simplificar las cosas, escribo directamente la operación en pantalla, pero podría haberla guardado en una variable y mostrado por pantalla. Podrás darte cuenta que + suma, – resta, * multiplica y / divide.

¡Suscribite al blog!

Hay que usar la palabra clave break para poder escapar del case. No hace falta seguir evaluando las otras opciones.

Por último, default es lo que pasa cuando nada de lo anterior es verdadero. Si todo sale bien, el programa se verá así:

Ingresé dos números, 2 y 3. Elegí la opción 1, y debajo aparece la suma, que es 5. Te dejo a vos seguir probando.

El código final debería quedarte así:

Console.WriteLine("Ingrese el primer número:");
double dblPrimero = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Ingrese el segundo número:");
double dblSegundo = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Ingresá tu opción según corresponda: \n\n1) Sumar \n2) Restar\n3) Multiplicar\n4) Dividir");
byte bytOpcion = Convert.ToByte(Console.ReadLine());

switch (bytOpcion)
{
    case 1:
        Console.WriteLine(dblPrimero + dblSegundo);
        break;
    case 2:
        Console.WriteLine(dblPrimero - dblSegundo);
        break;
    case 3:
        Console.WriteLine(dblPrimero * dblSegundo);
        break;
    case 4:
        Console.WriteLine(dblPrimero / dblSegundo);
        break;
    default:
        Console.WriteLine("Opción inválida");
        break;
}

Desde Ánima queremos ayudar a una fundación sin fines de lucro que promueve el aprendizaje de las personas que menos tienen.

Por eso, toda donación recibida durante 2024 será donada a la Fundación Fonbec, que podés investigar acá.

Compartiendo la nota, dando like o comentando abajo, nos ayudás un montón. También aportás suscribiéndote a nuestro canal de YouTube.


Avatar photo

Martín Longo

Director de Ánimadata y Business Intelligence Engineer. Quemadísimo, escribo acá mis opiniones.