top of page

Toma de decisiones con condicionales

     Bueno, como se conoce en la programación ahora mismo ya hemos llegado a lo que sería la mayoría de edad en la programación, al punto al que nosotros ya somos capaces de tomas decisiones, y de hacer que nuestros programas dependiendo de una situación u otra cojan un camino o cojan otro, por una parte, tenemos los operadores que nos ayudaran para la toma de decisiones de nuestro programa.

 

 

== comparacion
!= diferenciación
> mayor que
< menor que
<= menor o igual que
>= mayor o igual que
? operador ternario

 

 

Este último tan solo se utiliza para ahorrarse tiempo una vez que ya se ha cogido bastante fluidez a la hora de escribir código, pero puede volver un poco lioso el código por lo que no es recomendable utilizarlo. El primero y mas sencillo que tenemos es el " if " que en ingles significa un si condicional, lo que vamos a hacer con esto es decirle al programa, si pasa tal cosa haz esto, aqui tenemos un ejemplo.

 

 

class Condicionales {
     public static void main (String [ ] args) {

          String nota = 6;

          if (nota >= 5) {

               System.out.println("¡Enhorabuena, has aprobado con un " + nota + "!")

          {

       }

}

 

 

 

     De este modo, en el caso de que la varible nota es igual o mayor que 5 que se cumpla la condición y que nos imprima en pantalla ña cadena de texto que le hemos indicado, pero con las condiciones, no podemos tansolo indicarle lo que tiene que hacer en e caso de que se cumpla solo esa condicion, sino que tambien le podemos indicar mas condiciones para que en el caso de que una sea incorrecta podamos indicrle otra, para ello tenemos el condicional else y else if tal y como podemos ver en el siguiente ejemplo.

 

 

class Condicionales {
     public static void main (String [ ] args) {

          String nota = 4;

          if (nota > 5) {

               System.out.println("¡Enhorabuena, has aprobado con un " + nota + "!");

          } else if (nota < 5) {

               System.out.println("Lo sentimos mucho, pero ha suspendido con un " + nota + "...")

          } else {

               System.out.println("¡Has conseguido aprobar! " + "Pero solo con un " + nota + "...")

          }

       }

}

 

 

run:
Lo sentimos mucho, pero ha suspendido con un 4...
GENERACIÓN CORRECTA (total time: 1 second)

 

 

     Como podemos observar en el resultado que nos ha dado Netbeansha ignorado la primera y al llegar a la segunda ha imprimido en pantalla el texto que le hemos dado e inmediatamente ha salido de la condicion if. En el caso de que tan solo tubiesemos tan solo dos condiciones se podria abreviar todo eso con el operador ternario del siguiente modo.

 

 

class Condicionales {
     public static void main (String [ ] args) {

          String nota = 4;

          System.out.println((nota >=) ? "¡Enhorabuena, has aprobado con un " + nota + "!" : "Lo sentimos mucho, pero ha suspendido con un " + nota + "...");

       }

}

 

 

run:
Lo sentimos mucho, pero ha suspendido con un 4...
GENERACIÓN CORRECTA (total time: 1 second)

 

 

     Como podemos ver el resultado de nuestra aplicación en ambos caso es el mismo, pero, en el segundo caso, 1º solo lo podemos hacer con si o no y 2º resulta mucho mas dificil de entender y es mas lioso a la hora de leer el código. Podríamos seguír uniendo condiciones con el else if eternamente, pero para poder seguir optimizando el código y para hacerlo mucho mas entendible y no liarnos tanto a la hora de leer el código en java existe el condicional switch que nos va a permitir trabajar con un numero mucho mayor de casos como se puede observar en el siguiente ejemplo.

 

 

class Switch {
     public static void main (String [ ] args) {
          char grupo = 'B';
          switch (grupo){
               case 'A':
                    System.out.println("Tienes una A. ¡Gran trabajo!");
                    break;
               case 'B':
                    System.out.println("Tienes una B. ¡Buen trabajo!");
                    break;
               case 'C':
                    System.out.println("Tienes una C. ¡Necesitas mejorar!");
                    break;
              default:
                System.out.println("Tienes una D. ¡Necesitas un gran cambio!");
          }
     }    
}

 

 

run:
Tienes una B. ¡Buen trabajo!
GENERACIÓN CORRECTA (total time: 1 second)

 

Cabe destacar que si el valor que se pone despues de la palabra case es un número no se pone entre comillas y si es un string directamente no se puede hacer, tansolo se puede con caracteres y con valores numéricos. Y para terminar os he puesto el código de un programa que lo he llamado "Reloj", el cual importa una librería de java y obtiene el valor del dia, hora, mes y año de nuestro ordenador y nos servirá como introducción para el siguiente bloque de aprendizaje en java, a parte de un par de cosas, en un principio ya tendriais que saber como funciona este programa.

 

 

import java.util.*;
class Reloj{
    public static void main (String [ ] args) {

 


        // obtener fecha y hora actual

 

        Calendar ahora = Calendar.getInstance();
        int hora = ahora.get(Calendar.HOUR);
        int minuto = ahora.get(Calendar.MINUTE);
        int mes = ahora.get(Calendar.MONTH) + 1;
        int dia = ahora.get(Calendar.DAY_OF_MONTH);
        int an = ahora.get(Calendar.YEAR);
        


        //mostrar saludo


        if (hora < 12) {
            System.out.println("Buenos Dias");


        } else if (hora < 17) {
            System.out.println("Buenas Tardes");
        }
        else{
            System.out.println("Buenas Noches");
        }
        


        // iniciar el mensaje mostrando la hora


        System.out.print("Son las: ");
        System.out.print((hora > 12) ? (hora - 12) : (hora));
        System.out.print(" horas ");
        


        // mostrar los minutos


        if (minuto != 0) {
            System.out.print(minuto + " ");
            System.out.print((minuto != 1) ? "minutos " : "minuto ");
        }

 

        // mostrar dia del mes

     

        System.out.print("del " + dia + " ");
        


        //mostrar el nombre del mes


         switch (mes) {
              case 1:
                   System.out.print("de Enero");
                   break;
              case 2:
                   System.out.print("de Febrero");
                   break;
              case 3:
                   System.out.print("de Marzo");
                   break;
              case 4:
                   System.out.print("de Abril");
                   break;
              case 5:
                   System.out.print("de Mayo");
                   break;
              case 6:
                   System.out.print("de Junio");
                   break;
              case 7:
                   System.out.print("de Julio");
                   break;
              case 8:
                   System.out.print("de Agosto");
                   break;
              case 9:
                   System.out.print("de Septiembre");
                   break;
              case 10:
                   System.out.print("de Octubre");
                   break;
              case 11:
                  System.out.print("de Noviembre");
                   break;
              case 12:
                   System.out.print("de Diciembre");
                   break;
             }

 

 

            // mostrar año

 

            System.out.println(" de " + an);
      }
}

 

 

run:
Buenos Dias
Son las: 2 horas 12 minutos del 9 de Julio de 2013
GENERACIÓN CORRECTA (total time: 1 second)

bottom of page