jueves, 30 de junio de 2011

C# - Switch [Básico]


Antes de ir por Bucles de Repeticion, falta ver una ultima forma de comparación. El switch.
En este tutorial usaremos el proyecto del anterior tutorial

Switch en C#
Que es?
El switch, como dijimos antes es una función para comparar, como el IF. La diferencia es que el switch se utiliza para cuando un valor puede tomar muchos tipos de valores, osea.

if (operacion == "+")
{
Console.WriteLine("La suma de los valores es: " + (primervalor + segundovalor));
}
else if (operacion == "-")
{
Console.WriteLine("La resta de los valores es: " + (primervalor - segundovalor));
}
else if (operacion == "*")
{
Console.WriteLine("La multiplicacion de los valores es: " + primervalor * segundovalor);
}
else if (operacion == "/")
{
Console.WriteLine("La division de los valores es: " + primervalor / segundovalor);
}
else
{
Console.WriteLine("La operacion que ingreso es incorrecta");
}
Este código de nuestro anterior tutorial comparaba si la operación matemática era igual a la que ingresamos en la consola, para luego poder hacer la cuenta. Pero usando el switch, podríamos transformar eso en esto.


switch (operacion)
{
case "+":
{
Console.WriteLine("La suma de los valores es: " + (primervalor + segundovalor));
break;
}
case "-":
{
Console.WriteLine("La resta de los valores es: " + (primervalor - segundovalor));
break;
}
case "*":
{
Console.WriteLine("La multiplicacion de los valores es: " + primervalor * segundovalor);
break;
}
case "/":
{
Console.WriteLine("La division de los valores es: " + primervalor / segundovalor);
break;
}
default:
{
Console.WriteLine("La operacion que ingreso es incorrecta");
break;
}
}
Es mucho mas cómodo leer el código usando el switch que usando el if.
Bueno, si, el switch y el if hacen las mismas cosas, la diferencia esta en cada persona, si algunos les gusta usar los if puede hacerlo y repetirlos varias veces.
Cuestion de comodidad.

Como usarlo

switch (-valor a comparar-)
{
case -condicion-:
{
//bla bla bla bla
//bla bla bla bla
break;
}
case -segundacondicion-
{
//bla bla bla bla
//bla bla bla bla
break;
}
case -terceracondicion-
{
//bla bla bla bla
//bla bla bla bla
break;
}
default:
{
//bla bla bla bla
//bla bla bla bla
break;
}
}
Case -condicion-: Aca ponemos la condicion, podemos repetir esto cuanta veces queramos, el unico detalle es que siempre al final de nuestro codigo(entre los corchetes), debemos pones break;.
default: Si ninguna de las condiciones de lo case fue cumplida, ira por default.

También podemos hacer que si entra en un case, tambien haga otro. Para esto, debemos reemplazar el break; por goto.


switch (-valor a comparar-)
{
case -condicion-:
{
//bla bla bla bla
//bla bla bla bla
goto case -terceracondicion-;
}
case -segundacondicion-
{
//bla bla bla bla
//bla bla bla bla
break;
}
case -terceracondicion-
{
//bla bla bla bla
//bla bla bla bla
break;
}
default:
{
//bla bla bla bla
//bla bla bla bla
break;
}
}
Notese que, al poner goto, ponemos el case a que saltara y tambien la condicion que lleva, si no ponemos la condicion la IDE nos tirara error.
Por ultimo, nosotros podemos usar varios case para cuando el valor puede aceptar distinto valores, osea.
switch (-valor a comparar-)
{
case -condicion-:
case -segundacondicion-
{
//bla bla bla bla
//bla bla bla bla
break;
}
case -terceracondicion-
{
//bla bla bla bla
//bla bla bla bla
break;
}
default:
{
//bla bla bla bla
//bla bla bla bla
break;
}
}
Como ven, en el primer case nosotros no puse código ni break;, pero en el segundo si, como se leería esto?, el valor que estoy comparando puede ser -condicion- o -segundacondicion-. Si nosotros pusiéramos otro case arriba de segundo case, del nombre por ejemplo -unmediocondicion-, entonces la condicion se leería que el valor que estoy comparando, puede ser -condicion- o -unmediocondicion- o -segundacondicion-

Aca termina el tutorial de switch, para la proxima ya empezaremos con Bucle de Repetición.

Codigo completo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace MiAplicacion_Tutorial_6to
{
class Program
{
static void Main(string[] args)
{
int primervalor;
int segundovalor;
string operacion;
 
Console.WriteLine("Bienvenido a la mini-calculadora en C#");
Console.WriteLine("______________________________________");
Console.WriteLine("\n");
 
Console.WriteLine("Ingrese el primer valor a operar:");
primervalor = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\n");
 
Console.WriteLine("Ingrese el segundo valor a operar:");
segundovalor = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\n");
 
Console.WriteLine("Los numeros ingresado son {0} y {1}", primervalor, segundovalor);
 
Console.WriteLine("Elija la operacion matematica que realizara(+,-,*,/)");
operacion = Console.ReadLine();
Console.WriteLine("\n");
 
switch (operacion)
{
case "+":
{
Console.WriteLine("La suma de los valores es: " + (primervalor + segundovalor));
break;
}
case "-":
{
Console.WriteLine("La suma de los valores es: " + (primervalor - segundovalor));
break;
}
case "*":
{
Console.WriteLine("La suma de los valores es: " + primervalor * segundovalor);
break;
}
case "/":
{
Console.WriteLine("La suma de los valores es: " + primervalor / segundovalor);
break;
}
default:
{
Console.WriteLine("La operacion que ingreso es incorrecta");
break;
}
}
 
Console.WriteLine("\n");
Console.WriteLine("Gracias por utilizar la mini-calculadora");
}
Console.ReadKey();
}
}
Descargar