Estructura Repetitiva DO WHILE en Java

¿Qué es un bucle do while?

La estructura do while permite ejecutar un bloque de instrucciones al menos una vez, y luego repetirlo mientras se cumpla una condición lógica.

Sintaxis

do {
    // instrucciones
} while (condición);

Ejemplos explicados

Ejemplo 1: Contador del 1 al 5

int i = 1;
do {
    System.out.println(i);
    i++;
} while (i <= 5);

Ejemplo 2: Validación de ingreso

int numero;
Scanner sc = new Scanner(System.in);
do {
    System.out.print("Ingrese un número entre 1 y 10: ");
    numero = sc.nextInt();
} while (numero < 1 || numero > 10);

Ejemplo 3: Suma hasta ingresar cero

int valor, suma = 0;
Scanner sc = new Scanner(System.in);
do {
    System.out.print("Ingrese un valor (0 para terminar): ");
    valor = sc.nextInt();
    suma += valor;
} while (valor != 0);
System.out.println("Suma total: " + suma);

Ejemplo 4: Menú de opciones

int opcion;
Scanner sc = new Scanner(System.in);
do {
    System.out.println("1. Saludar");
    System.out.println("2. Despedir");
    System.out.println("3. Salir");
    System.out.print("Opción: ");
    opcion = sc.nextInt();
    switch(opcion){
        case 1: System.out.println("¡Hola!");
                break;
        case 2: System.out.println("¡Chau!");
                break;
    }
} while (opcion != 3);

Ejemplo 5: Promedio de valores positivos

int valor, suma = 0, contador = 0;
Scanner sc = new Scanner(System.in);
do {
    System.out.print("Ingrese un valor positivo (negativo para terminar): ");
    valor = sc.nextInt();
    if (valor >= 0) {
        suma += valor;
        contador++;
    }
} while (valor >= 0);
if (contador > 0)
    System.out.println("Promedio: " + (suma / (double)contador));
else
    System.out.println("No se ingresaron valores positivos.");

Quiz de opción múltiple

1. ¿Cuál es la principal diferencia entre while y do while?

a) do while siempre se ejecuta al menos una vez
b) while siempre se ejecuta al menos una vez
c) Ambas funcionan igual

2. ¿Qué condición detiene el siguiente bucle?

int x = 1;
do {
    x++;
} while (x < 5);
a) x >= 5
b) x == 5
c) x <= 5

3. ¿Cuál es la salida?

int i = 10;
do {
    System.out.print(i + " ");
    i -= 2;
} while (i > 0);
a) 10 8 6 4 2
b) 10 9 8 7 6
c) 10 8 6 2

4. ¿Qué hace este código si se ingresa 0 en la primera ejecución?

int numero;
Scanner sc = new Scanner(System.in);
do {
    System.out.print("Ingrese número: ");
    numero = sc.nextInt();
} while (numero != 0);
a) Se ejecuta una vez y termina
b) Nunca se ejecuta
c) Entra en bucle infinito

5. ¿Cuándo usamos preferentemente do while?

a) Cuando queremos que el bloque se ejecute al menos una vez
b) Cuando no queremos que se ejecute si la condición es falsa
c) Nunca se recomienda usarlo

6. ¿Cuál es el valor de suma al finalizar?

int i = 1, suma = 0;
do {
    suma += i;
    i++;
} while (i <= 3);
a) 6
b) 3
c) 5

7. ¿Cuál es la salida de este bucle?

int x = 3;
do {
    System.out.print(x);
    x++;
} while (x < 6);
a) 345
b) 456
c) 123

8. ¿Qué significa esta instrucción dentro del bucle?

i++;
a) Aumenta el valor de i en uno
b) Disminuye i en uno
c) Reinicia i

9. ¿Cuál es la salida esperada?

int x = 1;
do {
    System.out.print(x + " ");
    x *= 2;
} while (x <= 8);
a) 1 2 4 8
b) 1 3 5 7
c) 1 2 4

10. ¿Cuál es el valor final de i?

int i = 0;
do {
    i++;
} while (i < 3);
a) 3
b) 2
c) 1

Ejercicios propuestos

  1. Escribir un programa que solicite la carga de un número entre 0 y 999, y nos muestre un mensaje de cuántos dígitos tiene el mismo. Finalizar el programa cuando se cargue el valor 0.
  2. Escribir un programa que solicite la carga de números por teclado, obtener su promedio. Finalizar la carga de valores cuando se cargue el valor 0.
  3. Realizar un programa que permita ingresar el peso (en kilogramos) de piezas. El proceso termina cuando ingresamos el valor 0. Se debe informar:
  4. Realizar un programa que acumule (sume) valores ingresados por teclado hasta ingresar el 9999 (no sumar dicho valor, indica que ha finalizado la carga). Imprimir el valor acumulado e informar si dicho valor es cero, mayor a cero o menor a cero.
  5. En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada cuenta corriente se conoce: número de cuenta y saldo actual. El ingreso de datos debe finalizar al ingresar un valor negativo en el número de cuenta.
  6. Se pide confeccionar un programa que lea los datos de las cuentas corrientes e informe: