Curso Java. Volumen VI: Instrucciones de control I

Escrito por Adrián Crespo
Java

Aquí estamos de nuevo, con otra entrega del curso de Java.
En esta entrega vamos a hablar de las instrucciones de control que posee Java, es decir,  las diferentes formas en las que podemos emplear las instrucciones “if” y “switch“.

En los artículos anteriores, seguro que muchos de vosotros echasteis en falta programar.

A partir de ahora, vamos a tener mucho código en los ejemplos y vamos a tener que programar.

Instrucciones de control.

Las instrucciones de un programa pueden ser:

• Simples:

  1.  Expresiones: de asignación, incremento o decremento
  2.  Llamadas a métodos
  3.  Creación de objetos
  4.  instrucciones de control: if, switch, while, do-while, for

• Compuestas:

  1.  Se encierran entre llaves {}, y también se llaman bloques
  2.  Pueden contener muchas instrucciones y declaraciones;
  3.  Las declaraciones del bloque sólo son visibles en él, y en los bloques contenidos en él

Instrucción condicional simple

La instrucción condicional simple permite tomar decisiones empleando una variable booleana:

Ejemplo: poner un texto aprobado o suspenso según la nota


Instrucción condicionales anidadas.

Las instrucciones if también se pueden anidar:

El else se asocia al if anterior más próximo que no tenga else, siempre que esté en el mismo bloque que el else.

Ejemplo: poner “cum laude” en el ejemplo anterior si nota>=9

Instrucción condicional múltiple (switch).

Permite tomar una decisión de múltiples posibilidades, en función de un valor no booleano

Si este valor es discreto (byte, short, int, long, char, o enumerado), podemos utilizar una instrucción switch

El funcionamiento es el siguiente:

  •  Se compara la expresión con el primer valor.
  •  Si coincide, se ejecutan las instrucciones puestas bajo ese valor, y todas las siguientes que se encuentren, hasta encontrar un break.
  •  Si no coincide, se compara con el segundo valor, y así sucesivamente.
  •  Si no coincide con ningún valor, se ejecutan las instrucciones que haya en la parte default, si existe.
  •  Después de un break, la instrucción switch termina y seguimos por la siguiente instrucción.
  •  Los valores deben ser constantes, no variables.
  •  No puede haber ninguno coincidente.

Ejemplo: poner nota media entera con letra

-Instrucción condicional múltiple no discreta(else if).

Cuando la decisión no es discreta, usamos una “escalera” de instrucciones if:

Las condiciones se examinan empezando por la de arriba.

Tan pronto como una se cumple, sus instrucciones se ejecutan y la instrucción se abandona.

Si ninguna de las condiciones es cierta se ejecuta la última parte else.

La instrucción switch es mucho más eficiente que la instrucción condicional múltiple

En switch sólo se toma una decisión

En el if múltiple se evalúan muchas condiciones.

Ejemplo: Poner nota media entera con letra

Hasta aquí el sexto volumen del curso de Java.

No olvidéis que si tenéis cualquier duda sobre lo que estamos explicando, nos lo preguntéis.

Como podéis ver poco a poco hay más cosas que programar, y menos teoría, a partir de ahora será la dinámica. Poca teoría y bastante más código.

En el próximo volumen, trataremos el tema de los bucles.


Continúa leyendo
  • Luis

    Sois los mejores, aunque no entiendo del tema, estos cursos de por si, en alguna parte, seguro que valen un dinero y vosotros lo publicáis sin cobrar nada a cambio. Simplemente, sois los mejores. Bravo por vosotros, enserio.

    • Agradéceselo a Adrián, el nuevo miembro del R.

      Ahora es época de exámenes y estamos hasta arriba…en cuanto pasen estaremos a tope 😀

  • Nova6K0

    Esto es fantástico y sino me equivoco la instrucción condicional múltiple switch y case se usan mucho para hacer menús de opciones en muchos programas. Es que lo tengo visto en algunos códigos fuente de programas.

    Salu2

    • si, se utiliza mucho para hacer menus. Un menu con botones que cada boton tiene una funcionalidad y su pulsacion se recoge por un valor entero, y utilizando ese valor en el switch si implementan las funcionalidades de cada tecla

  • jose antonio

    donde pone Ejemplo: poner un texto aprobado o suspenso según la nota, en la siguiente imagen el else no se ve bien.

    yo de java no se, pero de c++ si, y son lenguajes muy parecidos, ya el año que viene aprendere en la carrera, y si tengo dudas vendre aqui.

    genial pagina, os sigo a diario aunque no comento mucho. me gustan mucho las review de los routers, seguid asi.

    Saludos

    • el problema de algunas fotos es que al capturar la pantalla de la herramienta de desarrollo donde lo programo y después ajustar el tamaño luego en el documento de texto, hay veces que la imagen se corta o se borra parcialmente, pero todavía no se el motivo

  • javier

    Hola a todos:

    En el ejemplo del if anidado; en el segundo else donde la instruccion es : System.out.println (“”) al poner las dos comillas sin nada adentro estas queriendo decir que no imprima nada ? si esto es asi se puede obviar el System.out print ?

    • le quiero decir que no imprima nada y tambien hago un salto de linea. Es decir , con el siguiente codigo:

      System.out.println(“Hola”);
      System.out.println(“”);
      System.out.println(“Adios”);

      la salida del programa seria:

      Hola

      Adios

      como dices tu, cambiando el System.out.print(“”), seria:

      Hola
      Adios

      La linea a la que tu haces mencion lo que haces es meter una linea en blanco en medio, que ahora ya sabes que se puede hacer metiendo tanto \n como quieras en el system.out.println(“\n\n\n\n\n”), aqui te separaria 5 lineas mas la del println

      un saludo!

  • yeah

    Todo Ok, sigo en el curso, y por cierto GENIAL…

  • 0rb3

    A ver si me explico bien, empece tarde a seguir este tutorial y ahora pues me cuesta enterarme de algunas cosas.

    En el ejemplo de poner nota media entera con letra, con switch o if-else, la parte:

    public NotaEntera (int nota) {
    notaMedia=nota;
    }

    No entiendo mu bien para que sirven estas lineas…no seria mas facil declarar un entero public en el que se guarde la nota y se le pase ya como parametro al “public String convierte()” del switch o el if-else y sacabo.
    No se si me explicao bien pero no entiendo ese public notaentera….

    Un saludo y esta superbien el tutorial!!!

    • 0rb3

      Puede ser porque las variables o argumentos no se pueden declarar como public y hay q declararlas como private y para pasarsela al convierte() hay que hacer eso??? no se…a ver que me decis!!! jejeje
      Un saludo