lunes, 17 de octubre de 2011

C# Basico desde cero - Clase 4 _ Esctructuras de control SWITCH / CASE

Hola amigos, sean bienvenidos a esta nueva clase de C# basico.
En la clase de hoy vamos a hablar de una herramienta muy util que nos va a ayudar a hacer nuestro código mas prolijo.
Habrán visto luego de la clase pasada que con la estructura IF/ELSE surge un problema: que pasa cuando empezamos a anidar if?.
Como ya habrán probado podemos anidar la cantidad de if que querríamos pero, es esto lo correcto? Definitivamente la respuesta es no. Nunca es bueno tener una cantidad de if anidados, pero que pasa cuando tenemos que evaluar por múltiples estados? Para esto nos vamos a valer de la herramienta SWITCH/CASE.


Como funciona? Fácil, esta herramienta va a recibir como parámetro la variable a ser evaluada, y por cada opción posible vamos a escribir una entrada CASE. De esta manera nuestra variable de entrada va a ser evaluada n cantidad de veces, siendo n el numero de opciones CASE que tiene nuestro SWITCH o hasta que encuentre la sentencia BREAK, la cual va a servir para informar a nuestro SWITCH que hemos encontrado el valor buscado y queremos detener la evaluación. Cabe destacar que en caso de no encontrar esta sentencia se van a evaluar todas las opciones CASE que hayamos puesto hasta llegar al final.
Otra opción importante que cuenta nuestra herramienta es la opción DEFAULT, con esta opción ( que se agrega con ultima sentencia a ser ejecutada del SWITCH ) vamos a indicar que antes de terminar la evaluación ingrese ahí, la utilidad de esta es opción es indicar cual va a ser el comportamiento por defecto en caso de que todas las demás evaluaciones hayan dado resultado negativo ( o no cuenten con una sentencia BREAK ).



using System;
namespace HelloWord
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 2;
            string print = string.Empty;

            switch (a)
            {
                case 0:
                    print = "Se encontro en la posicion 1";
                    break;
                case 1:
                    print = "Se encontro en la posicion 2";
                    break;
                case 2:
                    print = "Se encontro en la posicion 3";
                    break;
                default:
                    print = "No se encontro el numero buscado";
                    break;
            }

            Console.WriteLine("El numero: {0}, " + print, a);


            Console.ReadKey();
        }
    }
}


Como podemos ver en nuestro ejemplo la variable va a ser evaluada en cada CASE que disponemos, una vez que encuentre la opción que corresponde ( en nuestro ejemplo la ultima ) pondremos en una variable de tipo string la cadena "encontrado en la opción n" y luego lo imprimiremos por pantalla.





Como vemos el resultado de la ejecución de nuestro código da como resultado que se encontró en la tercer opción. Ahora supongamos el caso de que nuestro número sea 3, en este caso ninguna de nuestras opciones CASE dará un resultado, es ahí donde entra en juego la opción DEFAULT, la cual pondrá en la variable print que no se ha encontrado el numero buscado, y de esta manera luego lo mostrara en pantalla como podemos ver en la siguiente imagen:





Esto es todo por ahora, espero que hayan disfrutado esta nueva entrada, para la próxima nos espera un nuevo tipo de datos que nos va a introducir en un nivel mas avanzado de programación, las colecciones de datos.