EXES
CRÉDITOS
ÍNDICE DEL MANUAL
PRÓLOGO
EL LENGUAJE JAVA
BIBLIOGRAFÍA
EXES. LA COMPAÑÍA
 
Área de Programación y Desarrollo
  Curso de Introducción a Java
www.exes.es
Tel: 902 360 417
 Exes   Contactar 

4.4.8.3 Instrucciones iterativas

También conocidas como bucles, las instrucciones iterativas tienen la misión de ejecutar las mismas instrucciones de código un número de veces, determinado por una condición.

En java tenemos tres bucles: while, do while y for.

while:

La sintaxis es:

         while (condición)
         {
	         //Instrucciones a ejecutar
         }
         

Este bucle evalúa la condición, si es cierta ejecutará las instrucciones de su interior, una vez ejecutadas regresará al comienzo y se repetirá el proceso de evaluar/ejecutar. Este proceso sólo finalizará cuando en la evaluación la condición de cómo resultado false.

Prácticas:
Vamos a construir una aplicación que tome un número como argumento y muestre la tabla de multiplicar de dicho número.
  • Crear While1.java
  • Agregar el siguiente código:
            public class While1{
	            public static void main(String arg[]){
		            if ( arg.length>0) {
			            int valor = Integer.parseInt(arg[0]);
			            int contador = 1;
			            while (contador<=9)
			            {
				            System.out.println("" + valor + " * " + contador + " = " + (valor*contador));
				            contador++;
			            }

		            } 
		            else
		            {
			            System.out.println("No hay ningún parámetro");
		            }
	            }
            }
            

do while:

La sintaxis es:

         do
         {
	         //Instrucciones a ejecutar
         } while (condición);
         

Este bucle comienza ejecutando las instrucciones que hay en su interior, una vez ejecutadas comprueba el valor de condición, si es true vuelve de nuevo a repetir el proceso ejecutar/evaluar. Si la evaluación de condición es false, entonces finaliza la ejecución del bucle.

Un bucle while ejecutará sus instrucciones de 0 a n veces, dependiendo del valor de las condiciones. Mientras que un bucle do while ejecutará sus instrucciones de 1 a n veces dependiendo del valor de la condición.

Prácticas:
Crear una aplicación que solicite una contraseña al usuario, si es correcta mostrará que es correcta, si el usuario se equivoca tres veces finalizará el programa.
  • Crear el fichero DoWhile1.java
  • Agregar el siguiente código:
            public class DoWhile1{
	            public static void main(String arg[]){
		            String clave = "Sin clave";
		            String candidata;
		            int nVeces = 0;
		            do
		            {
			            System.out.println("Introduzca la clave: ");
			            candidata = leerLinea();
			            nVeces++;
		            }while(!clave.equals(candidata) && nVeces<3);			
		            if(nVeces==3 && !clave.equals(candidata))
		            {
			            System.out.println("Lo siento no acertó.");
		            }
		            else
		            {
			            System.out.println("Clave correcta.");	
		            }
	            }
	            /* 	Esta función permite leer una línea de texto, veremos su 
                               funcionamiento cuando lleguemos al capítulo de flujos de 
                              entrada y salida */
	            public static String leerLinea(){ 
		            try{
			            java.io.BufferedReader d = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
 			            return d.readLine();
		            }catch(Exception e) {}
		            return "";
	            }
            }
            

for

La sintaxis del bucle for es:

         for (inicialización;condición;evaluación){
	         //instrucciones a ejecutar
         }
         

Antes de nada veamos una equivalencia de un bucle while configurado como un bucle for:

         inicialización;     
         while (condición)
         {
	         //Instrucciones a ejecutar
	         evaluación;
         }
         

En esta equivalencia veremos que inicialización es empleada para dar un valor inicial a la variable que utilizaremos para ser evaluada posteriormente en la condición. La condición, que será evaluada para comprobar si se detiene o no el bucle for, y la evaluación, empleada para indicar los incrementos que se realizarán sobre la variable.

Prácticas:
Crear una aplicación que muestre los primeros 256 caracteres por pantalla, en cada fila aparecerán 5 caracteres.
  • Crear el fichero For1.java
  • Agregar el siguiente código:
            public class For1{
	            public static void main(String arg[]){
		            for (int nLetra = 0; nLetra<=255 ; nLetra ++) 
		            {
			            System.out.print(" " + nLetra + ": " + (char)nLetra);
			            if (nLetra%4==0) System.out.println("");
		            }
	            }
            }
            

Para los tres tipos de bucles existen dos palabras claves que se pueden emplear: break y continue. break consigue que se detenga el bucle y siga el flujo de ejecución después del bucle, mientras que continue provoca que se regrese al comienzo del bucle. Este regreso no provoca que se reinicialice las variables empleadas.

Prácticas:
  • Crear el fichero BreakContinue.java y agregar el siguiente código:
            public class BreakContinue1{
	            public static void main(String arg[]){
		            for (int contador = 0; contador<=15 ; contador ++) 
		            {
		            System.out.println(contador);
//		            if(contador==10) break;
//		            if(contador==10) continue;
		            System.out.println("Despues del if");
		            }
	            }
            }
            
  • Al ejecutar aparecerá:
            0
            Despues del if
            
  • pero variando de 0 a 14.
  • Ahora vamos a descomentar la línea del break y ejecutamos, el resultado será el mismo, pero ahora variará de 0 a 10 y además para el caso 10 no aparecerá el texto después de if.
  • Ahora comentamos la línea del break y descomentamos la línea del continue, ejecutamos. Podremos apreciar que aparecen los valores de 0 a 14, pero en el caso 10 no aparece el mensaje "Después de if".
··> Ver todos los cursos
··> Si necesitas más información, contáctanos aquí
 
 
 
Sello de Calidad   Sello de Calidad
  EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es