En esta nueva entrega vamos a tratar el control de flujo de un programa informático. Controlar el flujo es determinar el orden en el que se ejecutarán las instrucciones en nuestros programas, en base a una toma de decisiones.
Las sentencias más usuales son If, Switch, for, do y while. Bloque IF y su sintaxis es:
En pocas palabras viene a significar que: Si se cumple la condición if se ejecutaran las acciones del if, si no se cumple esa condición y existe el punto else if y se cumple la condición del else if se ejecutaran las acciones del else if, en caso de que no se cumpla ninguna condición se ejecutarÃan las acciones del else. En el momento que se cumple una condición ya no se evalúa ninguna más.
Bloque SWITCH: Cuando nos vemos obligados a anidar múltiples sentencias if, por ejemplo:
aspecto que sucede bastante a menudo, quiere decir que, probablemente sea más adecuado utilizar un switch. En un switch se evalúa una variable y en función del valor de esa variable se ejecuta un bloque Case. Si el valor de la variable no es igual a ningún Case y el bloque switch tiene un Default se ejecutaran las sentencias que se encuentren después de esta etiqueta.
La sintaxis general del switch es:
En pocas palabras viene a significar que si la variable que se evalúa en la primera lÃnea del switch vale 4 se ejecutaran las acciones que se encuentren en el case cuya valor sea 4. Una vez ejecutadas las acciones el programa llega a la sentencia break, que obligara al programa a salir del bloque switch y continuar en la primera sentencia después de la llave de cierre del mismo }.
Bloque FOR: Una de las acciones que mejor realiza un ordenador es el repetir operaciones. El bloque for es precisamente eso: un bloque de repetición. Se ira haciendo una y otra vez una serie de sentencias hasta que se cumpla una condición. La sintaxis general de este bloque es:
Usaremos un contador for cuando sepamos las iteraciones que queremos realizar.
Existe otra versión del bloque for denominado for-each que resulta idóneo para recorrer arrays y colecciones.
Bloque DO: El bloque do se ejecuta y después comprueba una condición. Si esa condición se cumple se volverá a ejecutar. Esto significa que por lo menos el bloque se ejecutara una vez. Es ideal para realizar menús por consola. La sintaxis general de este bloque es:
Bloque WHILE: El bloque while es igual que el bloque do salvo que la condición se comprueba antes de ejecutarse. Por tanto el bloque puede que no llegue a ejecutarse nunca.
Veamos unos cuantos ejemplos para comprender mejor estos conceptos. Aunque antes de pasar a ellos explicaremos un último concepto. Para capturar los datos que un usuario nos pasarÃa por teclado usaremos la clase Scanner, esta clase es exclusiva de la versión de JAVA J2SE5 y para utilizarla tendremos que importar java.util.*, pasemos a los ejemplos. Dependiendo del valor que solicitemos o esperamos utilizaremos una sentencia diferente para recogerlo: nextShort, nextInt, nextLong, nextLine (valores String), nextDouble.
Abriremos nuestra aplicación Eclipse y crearemos un nuevo proyecto al que llamaremos Segundo y le añadiremos una clase a la que llamaremos Condicional y antes de aceptarla marcaremos la casilla public static void main(String [] args).
En esta ocasión no vamos a crear ningún objeto, sencillamente trabajaremos directamente sobre el método main. Comenzaremos con el siguiente ejercicio: Realiza un programa que averigüe si el año introducido por el teclado es bisiesto. Teniendo en cuenta que para ser bisiesto debe ser divisible por 4 y no por 100. Y que también son bisiestos los años divisibles por 400. Si quieres puedes realizarlo tú antes de ver la solución o hacer simplemente un pseudocódigo en un papel. Nuestro código será el siguiente:
Puntualizaciones sobre este código: Para introducir comentarios en un código utilizaremos // cuando esos comentarios no sobrepasen una lÃnea. Utilizaremos /* - - - */ cuando el comentario sea de mas de una lÃnea. El funcionamiento del programa será el siguiente: En la consola aparecerá Introduce el año que desea comprobar. Puedes escribir el año que desees y pulsar intro, acto seguido se mostrar el mensaje correspondiente a año bisiesto o no, según el año indicado.
En este código aparecen algunos conceptos de los que no hemos hablado como por ejemplo: anyo%4==0 Se utiliza el operador aritmético % para conocer el resto de una división, en otros lenguajes se utiliza mod. Esta operación significa que el resto de dividir anyo entre 4 debe ser igual a 0. El operador lógico && significa and (Y) El operador != significa no es igual, es decir el resto de dividir anyo entre 100 es diferente de 0. El operador || es el operador or (O).
Nuestro código quedara tal y como sigue:Para comprobar el funcionamiento del bloque switch crearemos un programa que nos informe de cuantos dÃas tiene cualquier mes del año. Comenzaremos con una nueva clase a la que llamaremos diasdelmes y marcaremos la casilla public static void main(String [] args). Nuestro código será el siguiente:
Puntualizaciones sobre este código: Podemos comprobar que se pueden anunciar varios cases en una sola lÃnea y si la variable que validamos, en este caso mes, es igual a cualquier de los cases declarados en lÃnea se ejecutar el código de ese bloque. También podemos observar que todos los cases incluyen la sentencia break menos el caso de default. Incluimos la sentencia break en cada bloque para que una vez ejecutado el código de dicho bloque ya no continúe evaluando ningún bloque mas. En el caso de default como es el último bloque da igual el poner break o no ponerlo. El funcionamiento del programa será el siguiente: Al arrancar el programa aparecerá en la consola: Introduce el número del mes, nosotros podemos poner un número del 1 al 12 y pulsar intro y el programa nos devolverá los dÃas del mes indicado. Si colocamos un valor superior 12 o inferior de 1 el programa nos devolverá el valor del bloque default. El código quedara tal y como sigue:
En el siguiente post abordaremos los bloques repetitivos.
¿Qué te ha parecido el artÃculo?
Compartir con mis amigos
Ponte al dÃa en informática
Recibe gratis los nuevos artÃculos en tu email
Temas relacionados
Hace 4 años y 7 meses
Hemos comprobado que el formato automático del código cortaba partes de las lÃneas de mismo, creando un código incorrecto.
Ya hemos solucionado el problema y se ha repasado todo el código publicado, esperamos que de ahora en adelante se formatee de forma correcta. De todos modos si alguien observar algo extraño agradecemos siempre los avisos. Gracias a todos y disculpar las molestias.
Hace 4 años y 3 meses
Excelente articulo, me sirvio lo de muchisimo lo de short, he estado usando int para numero pequeños.
Bien, adelante
Hace 3 años y 12 meses
qusiera que me ayudaran hacer un menu sencillo en consola con la estructura if else. es para una tarea de la u. que me exigen hacerlo con esta estructura ok
Gracias!!!
Tu opinión es importante para todos nosotros.