Módulo 2: Estatutos
de Control
2. Ciclos |
Sintaxis Si se requiere realizar más de un estatuto se deben utilizar llaves. while (
condición ) Si la condición es falsa la primera vez nunca se ejecuta(n) el (los) estatuto(s). Ejemplo: Applet que toma la cantidad de dinero a invertir, el porcentaje de inversión mensual y el dinero que se quiere tener invertido finalmente y va desplegando en un campo (TextArea) el nuevo saldo mes tras mes.
Un ejemplo de la ejecución de este applet es: En este applet hemos utilizado el texto de área TextArea t, el cual nos ayuda a mostrar la información por línea, haciendo uso del método append(), es importante tambien notar que dentro del método append hemos concatenado el caracter "\n", el cual nos sirve para saltar de línea dentro del objeto TextArea, ya que con el append añadimos caracteres que son concatenados, pero nunca se salta de línea. Estatuto do .. while Sintaxis estatuto; while ( condición ); do while (
condición ); // nota que lleva ; el ciclo. Dado que la condición se revisa al final del ciclo el (los) estatuto (s) se realizan al menos una vez a diferencia del while Ejemplo: Dado un número en un campo texto, desplegar en otro el número de dígitos del primero
La visualización de este applet queda de la siguiente manera:
Estatuto for Sintaxis
estatuto; for (inicialización ; condicion ; accion ) {
bloque de estatutos;
Notas sobre el For
Ejemplo: for ( ; a > 10 ; a--)
Ejemplo: for (int num = 1; num < = 10; num++) Ejemplo I: Mostrar los N primeros números de la serie de Fibonacci. La serie es 1,1,2,3,5,8,13....
El applet ejecutado se visualizaría asi:
Ejemplo II: Sumar todos los números nones desde 1 hasta el número dado por el usuario
La ejecución del siguiente applet quedaría como:
Ciclo infinito Cuando en un ciclo la condición siempre es verdadera se dice que es un ciclo infinito, pues nunca saldrá del ciclo y el programa no termina. Para evitarlos hay que estar seguros que en el bloque de estatutos haya un estatuto que modifique el valor de la condición de tal modo que llegue a ser falsa. Ejemplos de
ciclos infinitos Ejemplo I En este ejemplo supongamos que en el applet de las inversiones, nos equivocamos en la condición del while y en lugar de tener (saldo < invfinal), tuvieramos (invinicial < invfinal), en este caso, la condición siempre hubiera sido verdadera, pues a quien le estamos acumulando es a la variable saldo, no a invinicial. Este es un error de ejecución difícil de encontrar. Ejemplo II En este ejemplo supongamos que en el applet de los dígitos, donde usamos el do while, en la condición del while no tenemos (x > 0) sino que utilizamos por error la variable cant, teniendo while (cant > 0) en lugar de while (x > 0), obviamente esto siempre seria verdad, ya que cant siempre se está incrementando. A su vez este error es difícil de ver. El applet seguirá ejecutandose (por siempre) y no nos daremos cuenta, es imporante observar que el botón sigue seleccionado, lo cual indica que el applet esta procesando las instrucciónes puestas en el actionPerformed, como se observa en la siguiente figura: Nunca pondrá nada en el segundo campo de texto y habrá que cancelarlo. |
Ejercicio |
1. Modifica el applet que te dá el número de dígitos, para que se realice utilizando el ciclo while, en lugar del ciclo do while. 2. Modifica el applet de inversiones para que en lugar de usar el ciclo while, utilice el ciclo do while. 3. Haz un applet que te calcule el factorial de un número N, el cual te dará el usuario, el factorial de un número N, definido matemáticamente como N! se obtiene como la multiplicación de todos los números que están desde el 1 hasta el N = 1 * 2 * 3 * ..... (N-2) * (N-1) * N, como se muestra en la figura:
|
Ligas sugeridas |
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/while.html
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/for.html |