Introducción
Se puede usar un bucle para indicarle a un programa que ejecute sentencias repetidamente. Suponga que necesita mostrar una cadena (por ejemplo, ¡Bienvenido a Java!) Cientos de veces. Sería tedioso tener que escribir la siguiente declaración cien veces:
Y. Daniel Liang. (2011). INTRODUCTION TO JAVA PROGRAMMING COMPREHENSIVE VERSION. USA: Armstrong Atlantic State University.
Se puede usar un bucle para indicarle a un programa que ejecute sentencias repetidamente. Suponga que necesita mostrar una cadena (por ejemplo, ¡Bienvenido a Java!) Cientos de veces. Sería tedioso tener que escribir la siguiente declaración cien veces:
Entonces, ¿cómo
resuelves este problema? Java proporciona una construcción poderosa llamada
bucle que controla cuántas veces se realiza una operación o una secuencia de
operaciones en sucesión. Usando una declaración de bucle, simplemente le dice a
la computadora que muestre una cadena cien veces sin tener que codificar la
declaración de impresión cien veces, de la siguiente manera:
Ciclo While
Un ciclo while ejecuta
declaraciones repetidamente mientras la condición es verdadera.
La figura 5.1a muestra
el diagrama de flujo del ciclo while. La parte del ciclo que contiene las
declaraciones que se repetirán se llama cuerpo del ciclo. Una ejecución única
de un cuerpo de bucle se conoce como una iteración (o repetición) del bucle.
Cada ciclo contiene una condición de continuación del ciclo, una expresión
booleana que controla la ejecución del cuerpo. Se evalúa cada vez para
determinar si se ejecuta el cuerpo del bucle. Si su evaluación es verdadera, se
ejecuta el cuerpo del bucle; Si su evaluación es falsa, el ciclo completo
termina y el control del programa pasa a la declaración que sigue al ciclo
while. ¡El bucle para mostrar Bienvenido a Java! Cien veces introducido en la
sección anterior es un ejemplo de un ciclo while. Su diagrama de flujo se muestra
en la Figura 5.1b.
Este es el cuerpo del
while con este ejemplo:
Nota: Asegúrese de que
la condición de continuación del bucle eventualmente se vuelva falsa para que
el bucle termine. Un error de programación común implica bucles infinitos (es
decir, el bucle se ejecuta para siempre). Si su programa tarda un tiempo
inusualmente largo en ejecutarse y no se detiene, puede tener un bucle
infinito. Si está ejecutando el programa desde la ventana de comandos, presione
CTRL + C para detenerlo.
Cuidado:
Los programadores a
menudo cometen el error de ejecutar un ciclo una o más veces. Esto se conoce
comúnmente como el error off-by-one. Por ejemplo, el siguiente bucle muestra
Bienvenido a Java 101 veces en lugar de 100 veces. El error radica en la
condición, que debe ser contar <100 en lugar de contar <= 100.
Control de un
bucle con un valor centinela:
Otra técnica común
para controlar un ciclo es designar un valor especial al leer y procesar un
conjunto de valores. Este valor de entrada especial, conocido como valor
centinela, significa el final de la entrada. Un bucle que utiliza un valor
centinela para controlar su ejecución se denomina bucle controlado por
centinela.
Ciclo do-while
Un ciclo do-while es
lo mismo que un ciclo while excepto que ejecuta primero el cuerpo del ciclo y
luego verifica la condición de continuación del ciclo. El ciclo do-while es una
variación del ciclo while. Su sintaxis es:
Su diagrama de flujo
de ejecución se muestra en la Figura 5.2. Primero se ejecuta el cuerpo del
bucle y luego se evalúa la condición de continuación del bucle. Si la
evaluación es verdadera, el cuerpo del bucle se ejecuta nuevamente; si es
falso, el do-while
FIGURA 5.2 El ciclo
do-while ejecuta primero el cuerpo del ciclo, luego verifica la condición de
continuación del ciclo para determinar si continúa o termina el ciclo.
La diferencia entre un
bucle while y un bucle do-while es el orden en que se evalúa la condición de
continuación del bucle y se ejecuta el cuerpo del bucle. Puede escribir un
bucle utilizando el bucle while o el bucle do-while. A veces, una es una opción
más conveniente que la otra. Por ejemplo, puede reescribir el ciclo while en el
Listado 5.5 usando un ciclo do-while, como se muestra en el Listado 5.6.
El ciclo for
Un bucle for tiene una
sintaxis concisa para escribir bucles. A menudo escribes un bucle en la
siguiente forma común:
La sintaxis de un for es:
El diagrama de flujo del for es el siguiente:
FIGURA 5.3 A para el
bucle realiza una acción inicial una vez, luego ejecuta repetidamente las
declaraciones en el cuerpo del bucle y realiza una acción después de una
iteración cuando la condición de continuación del bucle se evalúa como
verdadera.
La declaración del
bucle for comienza con la palabra clave for, seguida de un par de paréntesis
que encierra la estructura de control del bucle. Esta estructura consta de
acción inicial, condición de continuación de bucle y acción después de cada
iteración. La estructura de control es seguida por el cuerpo del bucle
encerrado dentro de las llaves. La acción inicial, la condición de continuación
de bucle y la acción después de cada iteración están separadas por punto y
coma. Un bucle for generalmente usa una variable para controlar cuántas veces
se ejecuta el cuerpo del bucle y cuándo termina el bucle. Esta variable se
conoce como una variable de control. La iniciación a menudo inicializa una
variable de control, la acción después de cada iteración generalmente aumenta o
disminuye la variable de control y la condición de continuación del bucle prueba
si la variable de control ha alcanzado un valor de terminación. Por ejemplo, lo
siguiente para impresiones en bucle ¡Bienvenido a Java! cien veces:
Tip:
La variable de control
debe declararse dentro de la estructura de control del bucle o antes del bucle.
Si la variable de control de bucle se usa solo en el bucle, y no en otra parte,
es una buena práctica de programación declararla en la acción inicial del bucle
for. Si la variable se declara dentro de la estructura de control del bucle, no
se puede hacer referencia fuera del bucle. En el código anterior, por ejemplo,
usted puede
Nota:
La acción inicial en
un bucle for puede ser una lista de cero o más declaraciones de declaración de
variables separadas por comas o expresiones de asignación. Por ejemplo:
La acción después de
cada iteración en un bucle for puede ser una lista de cero o más declaraciones
separadas por comas. Por ejemplo:
¿Cual ciclo
usar?
Puede usar un bucle
for, un bucle while o un bucle do-while, lo que sea conveniente. El bucle while
y el bucle for se denominan bucles pretest porque la condición de continuación
se verifica antes de ejecutar el cuerpo del bucle. El ciclo do-while se llama
ciclo posttest porque la condición se verifica después de ejecutar el cuerpo
del ciclo. Las tres formas de enunciados en bucle: while, do-while y for son
expresamente equivalentes; es decir, puede escribir un bucle en cualquiera de
estas tres formas. Por ejemplo, un ciclo while en (a) en la siguiente figura
siempre se puede convertir en el ciclo for en (b).
Use la declaración de
bucle que sea más intuitiva y cómoda para usted. En general, se puede usar un
bucle for si se conoce de antemano el número de repeticiones, como, por
ejemplo, cuando necesita mostrar un mensaje cien veces. Se puede usar un bucle
while si el número de repeticiones no es fijo, como en el caso de leer los
números hasta que la entrada sea 0. Se puede usar un bucle do-while para
reemplazar un bucle while si se debe ejecutar el cuerpo del bucle. antes de
probar la condición de continuación.
Bucles anidados
Un bucle se puede
anidar dentro de otro bucle. Los bucles anidados consisten en un bucle externo
y uno o más bucles internos. Cada vez que se repite el bucle externo, los
bucles internos vuelven a entrar y comienzan de nuevo. El listado 5.7 presenta
un programa que usa bucles anidados para mostrar una tabla de multiplicación.
Minimizar
errores numéricos:
El uso de números de
punto flotante en la condición de continuación del bucle puede causar errores
numéricos. Los errores numéricos que involucran números de punto flotante son
inevitables, porque los números de punto flotante se representan en forma
aproximada en las computadoras por naturaleza. Esta sección discute cómo
minimizar tales errores a través de un ejemplo. El listado 5.8 presenta un
ejemplo que resume una serie que comienza con 0.01 y termina con 1.0. Los
números en la serie se incrementarán en 0.01, de la siguiente manera: 0.01 +
0.02 + 0.03, y así sucesivamente.
Palabras break y
continue:
Las palabras clave
break y continue proporcionan controles adicionales en un bucle.
Break: Ha utilizado break de palabra clave en una
declaración de cambio. También puede usar break in a loop para terminar
inmediatamente el ciclo. El listado 5.12 presenta un programa para demostrar el
efecto del uso de break in a loop.
Continue; También puede usar la palabra clave continue
en un bucle. Cuando se encuentra, finaliza la iteración actual y el control del
programa va al final del cuerpo del bucle. En otras palabras, continuar salta
de una iteración mientras que la palabra clave de descanso sale de un bucle. El
listado 5.13 presenta un programa para demostrar el efecto del uso de continuar
en un ciclo.
Bibliografia
Comments
Post a Comment