DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

Sentencias de Decisión en C#

0

 


Estructuras condicionales: if

Al igual que en otros lenguajes de programación, tendremos varias posibilidades para comprobar una condición:

comprobar una condición y en función de ésta realizar una acción

comprobar una condición y en función de ésta realizar una acción u otra (excluyentes)

comprobar varias condiciones para realizar varias acciones diferentes (excluyentes)

Esta estructura es muy parecida a la utilizada en C. La sintaxis de la instrucción if es la siguiente:

  if (expresión) {
     instrucción o bloque de intrucciones 1;
  }
  [else {
     instrucción o bloque de intrucciones 2;
  } ]

El programa evalúa la expresión. Cuando esta expresión resulta verdadera, se ejecuta la instrucción o el bloque de instrucciones 1. Por contra, cuando es falsa de ejecuta la instrucción o bloque de instrucciones 2. Esta última parte es opcional. Para representar una estructura de varios casos se utilizará la sintaxis siguiente:

  if (expresión 1) {
     instrucción o bloque de instrucciones 1;
  }
  else if (expresión 2) {
     instrucción o bloque de instrucciones 2;
  }
  else if (expresión 3) {
     instrucción o bloque de instrucciones 3;
  }
  else {
     intrucción o bloque de instrucciones 4;
  }

Veamos un ejemplo del uso del if/else

    using System;
 
    class condicionalIF {
        public static void Main() {
            string myInput;
            int myInt;
            Console.Write("Please enter a number: ");
            myInput = Console.ReadLine();
            myInt = Int32.Parse(myInput);
 
            // comparación para una toma de decisión SIMPLE
            if (myInt > 0) {
                Console.WriteLine("el número {0} es mayor que cero", myInt);
            }
 
            // comparación para una toma de decisión SIMPLE
            if (myInt < 0) 
                Console.WriteLine("el número {0} es menor que cero", myInt);
 
            // comparación para tomar UNA DE DOS decisiones
            if (myInt != 0) {
                Console.WriteLine("el número {0} es distinto de cero", myInt);
            } else {
                Console.WriteLine("el número {0} es igual a cero", myInt);
            }
 
            // decisión MÚLTIPLE
            if (myInt < 0 || myInt == 0) {
                Console.WriteLine("el número {0} es menor o igual a cero", myInt);
            } else if (myInt > 0 && myInt <= 10) {
                Console.WriteLine("el número {0} está entre 1 y 10", myInt);
            } else if (myInt > 10 && myInt <= 20) {
                Console.WriteLine("el número {0} está entre 11 y 20", myInt);
            } else if (myInt > 20 && myInt <= 30) {
                Console.WriteLine("el número {0} está entre 21 y 30", myInt);
            } else {
                Console.WriteLine("el número {0} es mayor que 30", myInt);
            }
 
        }
}

En este ejemplo, leemos un valor desde teclado, que nos es devuelto como una cadena de caracteres que debemos transformar en número antes de asignarla a una variable entera. 
Para ello utilizaremos el método de Console que ya conocemos ReadLine(). La transformación la haremos mediante el método Parse de la clase Int32 del espacio de nombres System:

     myInput = Console.ReadLine();
     myInt = Int32.Parse(myInput);

Como vemos, en función de la condición, podemos tomar una o varias acciones mútuamente exclusivas (sólo una de ellas se ejecutará). También hay que hacer notar que si dicha acción es una sola instrucción, se pueden omitir la definición de bloque ( { } ). 

Estructuras condicionales: switch

De forma similar a la estructura if/else/if/else, podemos utilizar la estructura switch.

En este caso, seguido de la palabra reservada debemos poner una expresión que se evaluará a uno de los siguientes tipos: sbyte, byte, short, ushort, int, uint, long, ulong, char, string, or enum. A continación viene el bloque del switch, en el que cada posible caso está etiquetado con la palabra case <expresion>:

Si la expresión de un caso concreto coincide con la evaluación de la primera expresión, se ejecutan las instrucciones que hay a continación; sino, se pasa a comprobar el siguiente caso. 
Cada caso debe terminar con la instrucción break; o goto etiq para terminar el switch y evitar que se ejecuten las instrucciones correspondientes al siguiente caso.

Como veremos en el siguiente ejemplo, podemos poner un caso por defecto que se ejecutará si ninguno de los casos comprobados conincidía:

  using System;
 
  class condicionalSWITCH {
        public static void Main() {
            string myInput;
            int myInt;
            Console.Write("Please enter a number: ");
            myInput = Console.ReadLine();
            myInt = Int32.Parse(myInput);
 
 
            switch( myInt ) {
                case 1:
                   Console.WriteLine("primera opción");
                   break;
                case 2:
                   Console.WriteLine("segunda opción");
                   break;
                case 3:
                   Console.WriteLine("tercera opción");
                   break;
                case 4:
                   Console.WriteLine("cuarta opción");
                   break;
                default:
                   Console.WriteLine("opción por defecto");
                   break;
            }
 
        }
  }

Para hacer que cierto grupo de instrucciones se ejecuten cuando se cumplan varios casos, podemos utilizar una estructura como la que sigue:

            switch( myInt ) {
                case 1:
                case 2:
                case 3:
                   Console.WriteLine("está entre 1 y 3");
                   break;
                default:
                   Console.WriteLine("no está entre 1 y 3");
                   break;
            }

Una vez vistas las estructuras condicionales, veamos los tipos de bucle disponibles en C#. 

DEMOSTRACIÓN

Procederemos a escribir el ejemplo de las sentencias de Decisión en la consola:


Desplegamos la pantalla:









Tal vez te interesen estas entradas

No hay comentarios