1. Comparación de bucles: for
vs. while
Un bucle while
se puede usar en cualquier lugar donde una declaración o un grupo de declaraciones deban ejecutarse varias veces. Pero entre todos los escenarios posibles, uno vale la pena destacar.
Estamos hablando de la situación en la que el programador (el creador del programa) sabe de antemano cuántas veces se debe ejecutar el ciclo. Esto generalmente se maneja declarando una variable de contador especial y luego aumentando (o disminuyendo) la variable con 1
cada iteración del bucle.
Todo parece funcionar como debería, pero no es muy conveniente. Antes del ciclo, establecemos el valor inicial de la variable contador. Luego, en la condición, verificamos si ya ha alcanzado el valor final. Pero generalmente cambiamos el valor al final del cuerpo del ciclo.
¿Y si el cuerpo del bucle es grande? ¿O si tenemos varios bucles anidados? En general, en estos casos es deseable recopilar toda esta información sobre las variables de contador en un solo lugar. Y es por eso que tenemos el for
bucle en Java. Tampoco parece muy complicado:
for (statement 1; condition; statement 2)
{
block of statements
}
Un while
ciclo tiene solo una condición entre paréntesis, pero un for
ciclo agrega dos declaraciones, separadas por punto y coma.
La realidad es más simple de lo que parece: el compilador convierte un for
bucle en un while
bucle ordinario como este:
statement 1;
while (condition)
{
block of statements
statement 2;
}
O mejor aún, demostremos esto con un ejemplo. Los dos fragmentos de código a continuación son idénticos.
Opción 1 | opcion 2 |
---|---|
|
|
Acabamos de reunir en un solo lugar todo el código que pertenece a la i
variable de contador.
En un for
ciclo, la declaración 1 se ejecuta solo una vez, antes de que comience el ciclo. Esto se puede ver claramente en el segundo fragmento de código
la instrucción 2 se ejecuta el mismo número de veces que el cuerpo del ciclo, y cada vez se ejecuta después de que se haya ejecutado todo el cuerpo del ciclo
2. Dónde for
se usa el bucle
El for
bucle es probablemente el tipo de bucle más utilizado en Java. Se usa en todas partes, para los programadores es más claro y más conveniente que un while
bucle. Prácticamente cualquier while
bucle se puede convertir en un for
bucle.
Ejemplos:
mientras bucle | en bucle |
---|---|
|
|
|
|
|
|
|
|
|
|
Presta atención al último ejemplo. Faltan las sentencias para trabajar con el contador de bucles. No hay contador ni declaración.
En un for
bucle, Java le permite omitir la "instrucción para inicializar el contador" y la "instrucción para actualizar el contador". Incluso se puede omitir la expresión que define la condición del bucle.
3. Matices de usar el for
bucle.
Un punto importante sobre el uso for
de bucles break
y continue
declaraciones.
Una break
instrucción en un for
bucle funciona igual que en un while
bucle: finaliza el bucle inmediatamente. Una continue
declaración salta el cuerpo del bucle, pero no statement 2
(lo que cambia el contador del bucle).
Echemos otro vistazo a cómo se relacionan los bucles for
y while
.
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
Si una continue
sentencia se ejecuta en un for
bucle , entonces el resto del bloque de sentencias se salta, pero la sentencia 2 (la que funciona con la for
variable de contador del bucle) aún se ejecuta.
Volvamos a nuestro ejemplo saltando números que son divisibles por 7.
Este código se repetirá para siempre | Este código funcionará bien |
---|---|
|
|
El código que usa el while
bucle no funcionará; i nunca será mayor que 7. Pero el código con el for
bucle funcionará bien.
4. Comparación de bucles: Java vs Pascal
Por cierto, Pascal también tiene un For
bucle. En general, esencialmente cada lenguaje de programación tiene uno. Pero en Pascal es súper claro. Ejemplos:
Pascal | Java |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION