miércoles, 10 de marzo de 2010

switch

La instrucción switch es una instrucción de control que controla múltiples selecciones y enumeraciones pasando el control a una de las instrucciones case de su cuerpo, como se muestra en el ejemplo siguiente:

int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
Comentarios
El control se transfiere a la instrucción case que coincide con el valor del modificador. La instrucción switch puede incluir cualquier número de instancias case, sin embargo dos instrucciones case nunca pueden tener el mismo valor. La ejecución del cuerpo de la instrucción empieza en la instrucción seleccionada y continúa hasta que la instrucción break transfiere el control fuera del cuerpo case. Es necesario introducir una instrucción de salto como break después de cada bloque case, incluido el último bloque, se trate de una instrucción case o de una instrucción default. Con una excepción, (a diferencia de la instrucción switch de C++), C# no admite el paso implícito de una etiqueta case a otra. Esta excepción se produce si una instrucción case no tiene ningún código.

Si ninguna expresión case coincide con el valor de la instrucción switch, entonces el control se transfiere a las instrucciones que siguen la etiqueta default opcional. Si no existe ninguna etiqueta default, el control se transfiere fuera de la instrucción switch.

Ejemplo
// Sentencia_switch.cs
using System;
class SwitchTest
{
static void Main()
{
Console.WriteLine("Dimenciones del cafe: 1=Small 2=Medium 3=Large");
Console.Write("Entre su seleccion: ");
string s = Console.ReadLine();
int n = int.Parse(s);
int costo = 0;
switch(n)
{
case 1:
costo += 25;
break;
case 2:
costo += 25;
goto case 1;
case 3:
costo += 50;
goto case 1;
default:
Console.WriteLine("Seleccion Invalida. Seleccione 1, 2 o 3.");
break;
}
if (costo != 0)
{
Console.WriteLine("Debe insertar {0} pesos.", costo);
}
Console.WriteLine("Negocio finalizado, Gracias...");
}
}
Entrada
2
Resultados del ejemplo
Dimenciones del cafe: 1=Small 2=Medium 3=Large
Entre su seleccion: 2
Debe insertar 50 pesos.
Negocio finalizado, Gracias.
El siguiente ejemplo muestra que se permite el paso de una etiqueta case a otra para etiquetas case vacías.

// Sentencia_switch2.cs
using System;
class SwitchTest
{
static void Main()
{
int n = 2;
switch(n)
{
case 1:
case 2:
case 3:
Console.WriteLine("Esto es 1, 2 o 3.");
break;
default:
Console.WriteLine("No se que es...");
break;
}
}
}
Resultados
Esto es 1, 2 o 3.
Descripción del código
En el ejemplo anterior, se utilizó una variable de tipo integral, n, para los casos de la instrucción switch. Observe que también se puede utilizar la variable de cadena, s, directamente. En ese caso, la estructura switch puede presentar la siguiente forma:

switch(s)
{
case "1":
// ...
case "2":
// ...
}

No hay comentarios.:

Publicar un comentario

Preguntas;Comentarios;Aportes;Criticas Positivas;Recomendaciones.