Objetivos del Capítulo➔ Conocer los fundamentos acerca de la repetición
controlada por un contador.➔ Utilizar las instrucciones de repetición for y do...
while para ejecutar instrucciones de manera repetitiva en un programa.
➔ Comprender la selección múltiple utilizando la instrucción de selección switch.
➔ Utilizar las instrucciones de control de programa break y continue para alterar el flujo de control.
➔ Utilizar los operadores lógicos para formar expresiones condicionales complejas en instrucciones de control.
Introducción➔ El capítulo 4 nos introdujo a los tipos de bloques de
construcción disponibles para solucionar problemas.
➔ Utilizamos dichos bloques de construcción para emplear las técnicas, ya comprobadas, de la construcción de programas.
➔ En este capítulo continuaremos nuestra presentación de la teoría y los principios de la programación estructurada, presentando el resto de las instrucciones de control en Java.
Repetición whileEl ciclo while requiere 4 partes:1. Una variable de control.2. El valor inicial de la variable de control.3. El incremento (o decremento) .4. La condición, que determina si el ciclo debe continuar
o no.
Contador Whilepackage contadorwhile;public class ContadorWhile {public static void main( String args[] ){int contador = 1; //declara y asigna 1while ( contador <= 10 ) //condición de continuación{System.out.print( contador + " " );++contador; // incrementa en 1} // fin de while} // fin de main }
Instrucción de repetición for➔ La instrucción for, especifica los detalles de la
repetición en una sola línea de código.➔ Se incrementa el contador de forma automática, y
finalmente se ejecuta la prueba de control.
Ejemplo:ContadorForpackage contadorfor;public class ContadorFor {public static void main( String args[] ){for ( int contador=1; contador <= 10; contador++ ){System.out.print( contador + " " );} // fin de for} }
Ejemplos sobre el uso de la instrucción for➔ De 1 a 100 en incrementos de 1.for ( int i = 1; i <= 100; i++ )
➔ De 100 a 1 en decrementos de 1.for ( int i = 100; i >= 1; i-- )
➔ De 7 a 77 en incrementos de 7.for ( int i = 7; i <= 77; i+= 7 )
➔ De 20 a 2 en decrementos de 2.for ( int i = 20; i >= 2; i-= 2 )
➔ La siguiente secuencia: 55, 44, 33, 22, 11, 0.for ( int i = 55; i >= 0; i -= 11 )
Sumar Números Pares: del 2 al 10package sumapares;public class SumaPares {public static void main( String args[] ){int total = 0; // inicializa el totalfor ( int numero = 2; numero <= 10; numero += 2 )total += numero;System.out.printf( "La suma es "+total ); } // fin de main} // fin de la clase Suma
Ejemplo:Cálculo de InteresesUna persona invierte $1000 en una cuenta de ahorro que produce el 5% de interés. Calcule el dinero en la cuenta al final de cada año, durante 10 años, usando la fórmula:m = p(1 + r) ^ n ............ en donde:➔ p es el monto que se invirtió originalmente.➔ r es la tasa de interés anual (0.05)➔ n es el número de años➔ m es el monto obtenido.
package intereses;public class Intereses {public static void main( String args[] ){double monto; // monto final de cada añodouble principal = 1000; // monto inicialdouble tasa = 0.05; // tasa de interésSystem.out.println( "Año Monto" ); //Títulosfor ( int anio = 1; anio <= 10; anio++ ) { monto = principal * Math.pow( 1.0 + tasa, anio ); System.out.println( +anio + "\t" +monto );} // fin de for} }
Cálculo de Intereses➔ Utilizamos el método pow de la clase Math para
realizar el cálculo del interés.➔ Math.pow( x, y ) calcula el valor de x elevado a la y-
ésima potencia. El método recibe dos argumentos double y devuelve un valor double .
➔ Después de cada cálculo, se imprime en pantalla el año y el monto depositado al final de ese año.
Instrucción de repetición do...while➔ La instrucción de repetición do...while
evalúa la condición de continuación después de ejecutar el cuerpo del ciclo.
➔ Por lo tanto, el cuerpo siempre se ejecuta por lo menos una vez.
➔ Cuando termina una instrucción do...while , la ejecución continúa con la siguiente instrucción en la secuencia.
Imprimir del 1 al 10.package dowhile;public class DoWhile {public static void main( String args[] ){int contador = 1; // inicializa contadordo{ System.out.printf( " " +contador ); ++contador; // incrementa en 1} while ( contador <= 10 ); // fin de do...whileSystem.out.println(); // imprime una nueva línea} }
Instrucción de selección múltiple switch➔ En el capítulo 4 hablamos de la instrucción if. ➔ La instrucción switch permite seleccionar para
muchos valores de una variable. Ejemplo:switch ( valor ){case 999: // valor=999 System.out.print( "999" ); break; //corta el switchcase 777: // valor=777 System.out.print( "777" ); ......}
package calificacion;public class Calificacion { public static void main(String[] args) {int calificacion = 75;switch ( calificacion/10 ){case 9: // calificación está entre 90 y 100System.out.print( "Cinco" ); break; case 8: // calificación está entre 80 y 89System.out.print( "Cuatro" ); break;case 7: // calificación está entre 70 y 79System.out.print( "Tres" ); break;case 6: // calificación está entre 60 y 69System.out.print( "Dos" ); break;default: // todos los demás casosSystem.out.print( "Uno" ); } } }
Instrucciones break ➔ Además de las instrucciones de selección y
repetición, Java cuenta con las instrucciones break y continue.
➔ La instrucción break para terminar la ejecución de una instrucción switch.
➔ Cuando break se ejecuta en una instrucción while , for , do...while , o switch , ocasiona la salida inmediata de esa instrucción.
➔ Los usos comunes de break son para escapar anticipadamente del ciclo.
package pruebabreak;public class PruebaBreak { public static void main(String[] args) {int valor;for ( valor = 1; valor <= 10; valor++ ) // itera 10 veces{if ( valor == 5 ) // si valor es 5,break; // corta el ciclo} // fin de forSystem.out.println( "\nCortó en: " +valor );} // fin de main} // fin de la clase PruebaBreak
Instrucción continue➔ La instrucción continue omite las instrucciones
restantes de un ciclo y continúa con la siguiente iteración del ciclo.
➔ En las instrucciones while y do...while , la aplicación evalúa la prueba de continuación de ciclo justo después de que se ejecuta la instrucción continue .
➔ En una instrucción for se ejecuta la expresión de incremento y después el programa evalúa la prueba de continuación de ciclo.
package pruebacontinue;public class PruebaContinue { public static void main( String args[] ){for ( int valor = 1; valor <= 10; valor++ ) // itera 10 veces{if ( valor == 5 ) // si valor es 5,continue; // omite el resto del cicloSystem.out.printf( valor + " " );} // fin de for} }
Resultado: 1 2 3 4 6 7 8 9 10
Operador AND && ➔ if, while y for requieren una condición.
Hasta ahora hemos estudiado condiciones simples.➔ Suponga que deseamos asegurar que dos
condiciones sean ambas verdaderas.En este caso, podemos utilizar el operador && (AND condicional) de la siguiente manera:
➔ if ( genero == ‘FEMENINO’ && edad > 65 )La cual es verdadera si ambas son verdaderas.
Operador OR || Ahora deseamos que cualquiera o ambas condiciones sean verdaderas. En este caso, utilizamos el operador ||.if ( ( promedio >= 90 ) || ( examenFinal >= 90 ) )System.out.print ( “Materia Aprobada” );
La única vez que no se imprime el mensaje: “Materia Aprobada” es cuando ambas condiciones son falsas.