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".