====== Las estructuras de bucle ======

Las estructuras de bucle o repetición permite ejecutar de forma repetida estructuras de código. Existen diferentes tipos de bucle de forma que, como programador, podrás elegir la que más se adecue a cada situación.

Además, como veremos al final de esta parte, siempre se puede interrumpir repentinamente la repetición de estas estructuras cuando se
produzcan situaciones excepcionales que lo requieran.

===== Estructura for =====

La sentencia ''for''  es adecuada en los casos en que conocemos el número de veces que se debe ejecutar la estructura. Al definir el bucle podemos elegir los valores inicial y final para los que se repetirá y de cuanto en cuanto (valor de paso) iremos incrementando la variable de control que gestiona el número de iteraciones que se deben realizar.

<code java>
for (inicio; condicion; incremento) {
    sentencias;
}
</code>

<code java>
for (int i = 0; i < 10; i++} {
    System.out.println(i);
}
</code>

===== Estructura while =====

La estructura ''while''  es adecuada para los casos en los que tengamos que repetir una estructura de código hasta que se produzca una situación determinada. No nos importa el número de veces que se tenga que ejecutar el bucle, sino que éste permanecerá hasta que ocurra algo.

<code java>
while (condicion) {
    sentencias;
}
</code>

<code java>
String mensaje = "";
while (!mensaje.equals(".") {
    System.out.println("Introduce el nombre de un producto");
    mensaje = entrada.readLine();
}
</code>

===== Estructura do-while =====

La sentencia ''do-while'' es muy similar al bucle ''while'' pero garantiza que siempre se ejecutará al menos una iteración del mismo. La condición se evalúa al final de cada iteración asi que, al menos, se garantiza que la primera iteración siempre se ejecutará.

<code java>
do {
    sentencias;
} while (condicion)
</code>

<code>
int i = 10;
do {
    System.out.println(i);
    i++;
} while (x < 10);
</code>

===== Interrupción de una estructura de bucle =====

Todas las estructuras de bucle puede ser interrumpidas utilizando la instrucción ''break''. Cuando se encuentra dicha instrucción, se corta la ejecución completa de todo el bucle (la iteración actual y todas las que puedieran quedar) y el código continua su ejecución inmediatamente después del final de la estructura de bucle.

Existe también una instrucción que permite interrumpir una estructura de bucle pero sólo actúa para la iteración actual. La instrucción ''continue'' corta la ejecución de la iteración actual y vuelve al inicio del bucle para continuar su ejecución justo en la iteración siguiente a la interrumpida.

==== break ====

<code java>
while (condicion1) {
    sentencia1;
    sentencia2;

    // Si se cumple condicion2, se rompe el bucle
    // y la ejecución del programa seguirá en sentencia4
    if (condicion2)
        break;

    sentencia3;
}

sentencia4;
</code>

==== continue ====

<code java>
do {
    sentencia1;
    sentencia2;

    // Si se cumple la condición no se ejecutarán 
    // sentencia3 y sentencia4 para esa iteración
    // Pero el bucle continuará con la siguiente iteración
    if (condicion2)
        continue;

    sentencia3;
    sentencia4;
} while (condicion1)
</code>

----


(c) 2019-{{date>%Y}} Santiago Faci