Bifurcación y toma de decisiones (Visual C# Express)

Actualización: noviembre 2007

Cambiar el flujo de control en un programa en respuesta a algún tipo de entrada o valor calculado es una parte esencial de un lenguaje de programación. C# proporciona la capacidad para cambiar el flujo de control, ya sea en forma incondicional, pasando a una nueva ubicación en el código, o condicionalmente, realizando una prueba.

Comentarios

El tipo de bifurcación condicional más sencillo utiliza la construcción if. Se puede utilizar una cláusula else con la construcción if y anidar varias construcciones if.

using System;

class Program
{
    static void Main()
    {
        int x = 1;
        int y = 1;


        if (x == 1)
            Console.WriteLine("x == 1");
        else
            Console.WriteLine("x != 1");


        if (x == 1)
        {
            if (y == 2)
            {
                Console.WriteLine("x == 1 and y == 2");
            }
            else
            {
                Console.WriteLine("x == 1 and y != 2");
            }
        }                
    }
}
Nota:

A diferencia de C y C++, las instrucciones if requieren valores booleanos. Por ejemplo, no se permite tener una instrucción que no se evalúa con un simple True o False, como (a=10). En C#, no se puede sustituir el valor 0 por False y el valor 1 (o cualquier otro valor) por True.

Las instrucciones que siguen a las palabras clave if y else pueden ser una única línea de código, tal como se muestra en la primera instrucción if-else del ejemplo de código anterior, o un bloque de instrucciones entre llaves, tal como se muestra en la segunda instrucción if-else. Es posible anidar instrucciones if-else, pero generalmente se considera un mejor hábito de programación utilizar una instrucción switch en su lugar.

Una instrucción switch puede realizar varias acciones dependiendo del valor de una expresión determinada. El código entre la instrucción case y la palabra clave break se ejecuta si se cumple la condición. Si desea continuar el flujo de control con otra instrucción case, utilice la palabra clave goto.

using System;

class Program
{
    static void Main()
    {
        int x = 3;

        switch (x)
        {
            case 1: 
                Console.WriteLine("x is equal to 1");
                break;

            case 2:
                Console.WriteLine("x is equal to 2");
                break;

            case 3:
                goto default;

            default:
                Console.WriteLine("x is equal to neither 1 nor 2");
                break;
        }
    }
}

La expresión que la instrucción switch utiliza para determinar la instrucción case que se ejecutará debe utilizar Tipos de datos integrados (Visual C# Express), como int o string; no se pueden utilizar tipos más complejos definidos por el usuario.

A diferencia de Visual Basic, en C# la condición debe ser un valor constante. Por ejemplo, no se puede comparar la expresión con un intervalo de valores.

Vea también

Conceptos

Manual del lenguaje C#

Referencia

Instrucciones de selección (Referencia de C#)

Instrucciones de salto (Referencia de C#)