while sentencia for estructura ejercicios ejemplos ciclos ciclo java loops while-loop do-while

java - sentencia - hacer-mientras y mientras comparación



sentencia do while (4)

La diferencia entre un do-while y un while es cuando se hace la comparación. Con un do-while , lo comparará al final y, por lo tanto, realizará al menos una iteración.

Código equivalente para su ejemplo

do { i++; ++j; System.out.println( i * j ); } while ((i < 10) && (j*j != 25));

es equivalente a:

i++; ++j; System.out.println( i * j ); while ((i < 10) && (j*j != 25)) { i++; ++j; System.out.println( i * j ); }

Comprensión general

Un bucle do-while while es un bucle de salida controlada que significa que sale al final. Un bucle while es un bucle de entrada controlada que significa que la condición se prueba al principio y, como consecuencia, el código dentro del bucle podría incluso no ejecutarse.

do { <block> } while (<condition>);

es equivalente a:

<block> while (<condition>) { <block> };

Caso de uso

Un caso de uso típico para un do-while es el siguiente: le pregunta al usuario algo y desea repetir la operación mientras la entrada no es correcta.

do { // Ask something } while (input is not correct);

En ese caso, debe preguntar al menos una vez y, por lo general, es más elegante que usar un while que requeriría duplicar el código, agregar una condición adicional o establecer un valor arbitrario para forzar la entrada al ciclo la primera vez.

Por el contrario, while bucles son mucho más comunes y pueden reemplazar fácilmente un do-while (no todos los idiomas tienen ambos bucles).

hacer-mientras:

do { i++; ++j; System.out.println( i * j ); } while ((i < 10) && (j*j != 25));

Estoy aprendiendo acerca de do-while vs en este momento y me gustaría reescribir el fragmento java anterior (ya declarado e inicializado) usando un tiempo en su lugar. Son los siguientes códigos reescritos la forma correcta de hacerlo:

mientras:

while ((i < 10) && (j*j != 25)) { i++; ++j; System.out.println( i * j ); }

Aclamaciones


Los bucles Do-While son bastante útiles para casos como estos, en los que le hace una pregunta al usuario y el usuario debe responder para que el programa finalice. Por ejemplo, este código:

import java.util.Scanner; public class DoWhile { public static void main(String[] args) { int answer; do { System.out.println("What is 5+5?"); Scanner scan = new Scanner(System.in); answer = scan.nextInt(); } while (answer != 10); } }


No, los dos códigos no son equivalentes. do-while solo comprueba la condición al final del ciclo, de modo que i++ , ++j y System.out.println(i * j) producen al menos una vez, independientemente de los valores iniciales de i y j . while salta todo el ciclo si la condición no es true por primera vez que se ingresa el ciclo.

Puede lograr el mismo efecto con while copiando el cuerpo del bucle una vez antes del bucle, por ejemplo.


La diferencia clave entre do-while y while , con do-while le garantiza al menos una ejecución de su código antes de los controles.

* No necesita ser más complicado que eso.