Introducción a C#
Por Nacho Cabanes, versión 0.93 de 16-abr-2010


(Nota: Estás viendo una versión del curso antigua, creada en 2009. Es recomendable que sigas la versión 2015, mucho más actualizada, con contenidos más detallados, más ejemplos y más ejercicios propuestos)

3.1.4. if-else

Podemos indicar lo que queremos que ocurra en caso de que no se cumpla la condición, usando la orden "else" (en caso contrario), así:

/*---------------------------*/
/*  Ejemplo en C# nº 13:     */
/*  ejemplo13.cs             */
/*                           */
/*  Condiciones con if (4)   */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo13
{
  public static void Main()
  {
    int numero;
 
    Console.WriteLine("Introduce un número");
    numero = Convert.ToInt32(Console.ReadLine());
    if (numero > 0) Console.WriteLine("El número es positivo.");
      else Console.WriteLine("El número es cero o negativo.");
  }
}
 

Podríamos intentar evitar el uso de "else" si utilizamos un "if" a continuación de otro, así:

/*---------------------------*/
/*  Ejemplo en C# nº 14:     */
/*  ejemplo14.cs             */
/*                           */
/*  Condiciones con if (5)   */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo14
{
  public static void Main()
  {
    int numero;
 
    Console.WriteLine("Introduce un número");
    numero = Convert.ToInt32(Console.ReadLine());
    if (numero > 0) Console.WriteLine("El número es positivo.");
    if (numero <= 0) Console.WriteLine("El número es cero o negativo.");
  }
}
 

Pero el comportamiento no es el mismo: en el primer caso (ejemplo 13) se mira si el valor es positivo; si no lo es, se pasa a la segunda orden, pero si lo es, el programa ya ha terminado. En el segundo caso (ejemplo 14), aunque el número sea positivo, se vuelve a realizar la segunda comprobación para ver si es negativo o cero, por lo que el programa es algo más lento.

Podemos enlazar los "if" usando "else", para decir "si no se cumple esta condición, mira a ver si se cumple esta otra":

/*---------------------------*/
/*  Ejemplo en C# nº 15:     */
/*  ejemplo15.cs             */
/*                           */
/*  Condiciones con if (6)   */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo15
{
  public static void Main()
  {
    int numero;
 
    Console.WriteLine("Introduce un número");
    numero = Convert.ToInt32(Console.ReadLine());
    if (numero > 0) 
      Console.WriteLine("El número es positivo.");
    else
      if (numero < 0) 
        Console.WriteLine("El número es negativo.");
      else
        Console.WriteLine("El número es cero.");
  }
}
 

Ejercicio propuesto: Mejorar la solución a los dos ejercicios del apartado anterior, usando "else".