Buscar..


Declaración If-Else

La programación en general a menudo requiere una decision o una branch dentro del código para tener en cuenta cómo funciona el código bajo diferentes entradas o condiciones. En el lenguaje de programación C # (y en la mayoría de los lenguajes de programación para esta materia), la forma más sencilla y, a veces, la más útil de crear una rama dentro de su programa es a través de una declaración If-Else .

Asumamos que tenemos un método (también conocido como una función) que toma un parámetro int que representará un puntaje de hasta 100, y el método imprimirá un mensaje que indica si aprobamos o no.

static void PrintPassOrFail(int score)
{
    if (score >= 50) // If score is greater or equal to 50
    {
        Console.WriteLine("Pass!");
    }
    else // If score is not greater or equal to 50
    {
        Console.WriteLine("Fail!");
    }
}

Al observar este método, puede observar esta línea de código ( score >= 50 ) dentro de la instrucción If . Esto se puede ver como una condición boolean , donde si la condición se evalúa para que sea igual a true , entonces se ejecuta el código que está entre if se ejecuta { } .

Por ejemplo, si este método fue llamado así: PrintPassOrFail(60); , la salida del método sería una Consola de Impresión que dice ¡Pase! ya que el valor del parámetro de 60 es mayor o igual a 50.

Sin embargo, si el método fue llamado como: PrintPassOrFail(30); , la salida del método se imprimirá diciendo Fail! . Esto se debe a que el valor 30 no es mayor o igual a 50, por lo tanto, el código que se encuentra entre else { } se ejecuta en lugar de la instrucción If .

En este ejemplo, hemos dicho que la puntuación debería aumentar a 100, lo que no se ha contabilizado en absoluto. Para tener en cuenta que el puntaje no supera los 100 puntos o posiblemente esté por debajo de 0, consulte el ejemplo de la instrucción If-Else If-Else .

Declaración If-Else If-Else

Siguiendo con el ejemplo de la Declaración If-Else , ahora es el momento de introducir la instrucción Else If . La instrucción Else If sigue directamente después de la instrucción If en la estructura If-Else If-Else , pero intrínsecamente tiene una sintaxis similar a la instrucción If . Se utiliza para agregar más ramas al código de lo que puede hacer una simple instrucción If-Else .

En el ejemplo de If-Else Statement , el ejemplo especificó que el puntaje sube a 100; Sin embargo, nunca hubo controles contra esto. Para solucionar esto, modifiquemos el método de If-Else Statement para que se vea así:

static void PrintPassOrFail(int score)
{
    if (score > 100) // If score is greater than 100
    {
        Console.WriteLine("Error: score is greater than 100!");
    }
    else if (score < 0) // Else If score is less than 0
    {
        Console.WriteLine("Error: score is less than 0!");
    }
    else if (score >= 50) // Else if score is greater or equal to 50
    {
        Console.WriteLine("Pass!");
    }
    else // If none above, then score must be between 0 and 49
    {
        Console.WriteLine("Fail!");
    }
}

Todas estas declaraciones se ejecutarán en orden desde la parte superior hasta la parte inferior hasta que se cumpla una condición. En esta nueva actualización del método, hemos agregado dos nuevas sucursales para acomodar ahora la puntuación que está saliendo de los límites .

Por ejemplo, si ahora llamamos al método en nuestro código como PrintPassOFail(110); , la salida sería un mensaje de error de Impresión de la Consola : ¡la puntuación es mayor que 100! ; y si llamamos al método en nuestro código como PrintPassOrFail(-20); , la salida diría Error: la puntuación es menor que 0! .

Cambiar declaraciones

Una declaración de cambio permite que una variable se pruebe para determinar su igualdad frente a una lista de valores. Cada valor se llama un caso, y la variable que se está activando se comprueba para cada caso de interruptor.

Una declaración de switch es a menudo más concisa y comprensible que if...else if... else.. declaraciones cuando se prueban varios valores posibles para una sola variable.

La sintaxis es la siguiente

switch(expression) {
   case constant-expression:
      statement(s);
      break;
   case constant-expression:
      statement(s);
      break;
  
   // you can have any number of case statements
   default : // Optional
      statement(s);
      break;
}

Hay varias cosas que se deben tener en cuenta al usar la instrucción switch

  • La expresión utilizada en una instrucción de conmutación debe tener un tipo integral o enumerado, o debe ser de un tipo de clase en el que la clase tenga una única función de conversión a un tipo integral o enumerado.
  • Puede tener cualquier número de declaraciones de casos dentro de un interruptor. Cada caso va seguido del valor que se va a comparar y dos puntos. Los valores para comparar deben ser únicos dentro de cada instrucción de conmutación.
  • Una instrucción de cambio puede tener un caso predeterminado opcional. El caso predeterminado se puede usar para realizar una tarea cuando ninguno de los casos es verdadero.
  • Cada caso debe terminar con una declaración de break , a menos que sea una declaración vacía. En ese caso la ejecución continuará en el caso que se encuentra debajo. La declaración de ruptura también se puede omitir cuando se utiliza una return , throw o goto case .

Se puede dar ejemplo con los grados sabios.

char grade = 'B';

switch (grade)
{
    case 'A':
        Console.WriteLine("Excellent!");
        break;
    case 'B':
    case 'C':
        Console.WriteLine("Well done");
        break;
    case 'D':
        Console.WriteLine("You passed");
        break;
    case 'F':
        Console.WriteLine("Better try again");
        break;
    default:
        Console.WriteLine("Invalid grade");
        break;
}

Si las condiciones de la declaración son expresiones y valores booleanos estándar

La siguiente declaración

if (conditionA && conditionB && conditionC) //...

es exactamente equivalente a

bool conditions = conditionA && conditionB && conditionC;
if (conditions) // ...

en otras palabras, las condiciones dentro de la declaración "if" solo forman una expresión booleana ordinaria.

Un error común al escribir sentencias condicionales es comparar explícitamente con true y false :

if (conditionA == true && conditionB == false && conditionC == true) // ...

Esto se puede reescribir como

if (conditionA && !conditionB && conditionC)


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow