Sentencias de Iteración en Java (while, do-while)
En un post anterior de esta serie hemos visto Setencias de Decisión en Java (switch), el día de hoy comenzaremos con las sentencias iterativas de las cuales veremos Do-While y While. Las sentencias iterativas permiten ejecutar un bloque de código tantas veces como sea necesario. Veamos entonces cómo funcionan estas sentencias.
Sentencia while
Esta sentencia permite ejecutar un bloque de código tantas veces como una sentencia sea verdadera. Esto implica que si al comienzo la sentencia es falsa entonces no se ejecutará el bloque de código ni una sola vez. Veamos el siguiente ejemplo.
public class Test
{
public static void main(String[] args) {
int counter = 1, until = 5;
while (counter <= until) {
System.out.println("Itaration #" + counter);
counter++;
}
}
}
Al ejecutar este código se obtiene una salida como la siguiente:
Itaration #1
Itaration #2
Itaration #3
Itaration #4
Itaration #5
Como puedes ver se ha ejecutado cinco veces el mismo bloque de código imprimiendo el número de iteración respectivo. Cómo en cualquier bucle debes asegurarte que el ciclo terminará en algún momento, en este caso en cada iteración se comprueba que la variable counter
es menor que until
y se aumenta en uno el valor de la variable con tal que cuando llegue a cinco sea la última iteración.
Sentencia do-while
Esta sentencia es similar a la sentencia while en cuanto que el bloque de código se ejecutan siempre y cuando una sentencia sea verdadera. La gran diferencia con respecto a la anterior, es que el bloque de código dentro de esta sentencia se ejecuta al menos una vez, es decir, el valor de la sentencia es evaluado al final. Veamos el siguiente ejemplo.
public class Test
{
public static void main(String[] args) {
int a, b, ans;
String action;
Scanner input;
do {
System.out.println("Enter 'a' number: ");
input = new Scanner(System.in);
a = Integer.valueOf(input.nextLine());
System.out.println("Enter 'b' number: ");
input = new Scanner(System.in);
b = Integer.valueOf(input.nextLine());
ans = a + b;
System.out.println(String.valueOf(a) + " + " + String.valueOf(b) + " = " + String.valueOf(a+b));
System.out.println("Do you want to calculate the sum of another two numbers ? (Y/N)");
Scanner teclado = new Scanner(System.in);
action = teclado.nextLine();
} while (action.equals("Y"));
}
}
La salida será similar a la siguiente.
Enter 'a' number:
14
Enter 'b' number:
16
14 + 16 = 30
Do you want to calculate the sum of another two numbers ? (Y/N)
N
...Program finished with exit code 0
Press ENTER to exit console
Observemos a detalle este programa. En las primeras tres líneas del método main
se declaran algunas variables del programa. Seguido a esto, el bloque de código dentro de las llaves pregunta por consola al usuario que digite dos valores, a y b. Seguido a esto se realiza la suma de estos dos valores y se imprime su resultado. Las tres últimas líneas dentro de las llaves preguntan al usuario si dese calcular nuevamente una suma y guarda lo digitado en la variable action
. Finalmente se evalúa la condición, si el usuario digitó el caracter Y entonces se volverá a ejecutar todo el bloque. Como veis, en últimas el bloque se ejecuta al menos una vez.