Sentencias de control II - else

En bastantes ocasiones no sólo es necesario ejecutar una instrucción dada una condición, sino que hay que realizar otra en caso de no ser verdad la misma.

La sentencia if puede ir sola, o acompañada de un else, la instrucción dentro del else se ejecuta sólo si la condición especificada en el if es falsa, de no ser así, simplemente es ignorado. Veamos un diagrama:




Es sencillo, el rombo representa un if, dentro de él está la condición.
En caso de ser verdadera:
Toma el camino de la derecha, ejecuta la instrucción y continúa el flujo del programa.
En caso de ser falsa:
Toma el camino de la izquierda, ejecuta la instrucción y continúa con el flujo normal del programa.

En código se vería algo así:


public class Ejemplo
{
 public static void main(String[] args)
 {
   int a = 5;
  int b = 6;
   if( a > b )
        System.out.print("a es mayor que b");
  else
   System.out.print("b es mayor que a");
 }
}

Analicémoslo:

int a = 5;
int b = 6;

Declaramos dos variables, a y b.

 if( a > b )
       System.out.print("a es mayor que b");

Si a es mayor que b, entonces imprime en pantalla el mensaje dado

 else
  System.out.print("b es mayor que a");

En caso de que no se cumpla el if, entra directamente el else, e imprime el mensaje b es mayor que a.

Podemos saber ahora que el resultado producido por el programa será:

b es mayor que a

Creo no requiere mucha explicación, siempre que la condición del if sea falsa entrará al else.
Ahora modifiquemos un poco nuestro ejemplo, asignemos a la variable a y b el mismo valor.
public class Ejemplo
{
 public static void main(String[] args)
 {
  int a = 7;
  int b = 7;
  if( a > b )
   System.out.print("a es mayor que b");
  else
   System.out.print("b es mayor que a");
 }
}

¿Qué mensaje mostrará nuestro programa?
Primero determinemos si la condición del if es verdadera, ¿es 7 mayor que 7?, no, 7 no es mayor que 7 por lo tanto se va al else e imprime el mensaje:

b es mayor que a

Esto no es cierto, b no es mayor que a y tampoco es menor, son iguales pero a pesar de ello nuestro programa produce ese resultado.
Una posible solución seria primero verificar si son iguales, en caso de no ser iguales pues nos vamos a un else y ahora si condicionamos para saber cual es mayor.




He colocado con color azul a que if corresponde cada else. En este ejemplo primero determinamos si a es igual a b, en caso de ser falso significa que forzosamente uno es mayor que otro y entra al else. Dentro del else se determina cuál es el mayor y se imprime el resultado.
Está es la salida del programa:

a es igual a b

1 comentario :

  1. ke tal como le va ingeniero xD
    vas a poner lo de las condiciones multiples? lo buske pero no lo tienes xD estaba batallando con el && le ponia and xD hahaha bueno ke va, ta bien tu blog

    ResponderEliminar