Autor Tema: Java cuándo usar while y cuándo do while diferencias entre bucles forma regresos  (Leído 2300 veces)

CoduJ

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Buenas, espero que se encuentren bien.

Soy relativamente nuevo en programación, y el lenguaje que estoy aprendiendo es Java, y este es el primero que me lo estoy tomando enserio en el estudio.

Usualmente, me suelo poner en práctica teorías, simplemente repasar o mejorar un proyecto, y en este caso, intenté de hacer un sistema de banco, con las opciones: Ver dinero; Sacar dinero; Depositar; Salir.

Para no tener que volver a compilar el proyecto (y además para simular que estoy programando un banco...) hice un bucle para mantener el usuario una vez termine alguna acción, vuelva desde el principio (claro, una vez no elija la opción de "Salir"), pero me quede con la duda si es que realmente debería ser así, por ejemplo:

Código: [Seleccionar]
while(Variable == true){
    //hacer X acción
    if (X == true){
        Variable = false;
    }
}
De antemano, muchas gracias.
(Si quieren, puedo mostrar el código de mi "banco" también.)
« Última modificación: 25 de Octubre 2020, 18:52 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Sistema de "regreso"
« Respuesta #1 en: 15 de Abril 2020, 11:13 »
Hola.
Sí, esa sería la lógica a seguir:

Usar una variable boolean con valor true para mantener "vivo" el bucle hasta que el usuario elija la opción de salir. Entonces será cuando esa variable cambie a valor false y el bucle finalizará
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

CoduJ

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:Sistema de "regreso"
« Respuesta #2 en: 15 de Abril 2020, 20:30 »
¿Entonces la estructura del código está bien? Pues, muchas gracias.
También tengo otra duda, ¿es también optimo hacerlo con un bucle do-while? Si no me equivoco, este bucle al menos garantiza que se realice un bloque del código una vez, y no entrará en el bucle si cierta condición no se cumple, creo que quedaría más profesional.

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Sistema de "regreso"
« Respuesta #3 en: 15 de Abril 2020, 23:33 »
Ambas formas, while() y do..while(), te van a servir.

Sí, do..while() te garantiza que al menos una vez se va a ejecutar el bucle, porque la condición se evalúa al final, después de ejecutar el bloque de código que contiene.
En cambio, el while() evalúa al principio y podría ocurrir que no se ejecute ni una sola vez.

Para un programa donde, sí o sí, queremos mostrar un menú de opciones al comienzo, sí parece más adecuado usar el do..while()

Para un programa distinto, donde queremos que el bloque de código se ejecute solo si se cumple cierta condición, mejor el while() sin duda.

Pero vamos, que un while(), si justo antes del bucle inicializas la variable que vas a usar como condición con valor true, también tienes garantizada al menos una ejecución del bucle.

Así que elegir uno u otro va a depender de cada caso, de si alguno te va a suponer ahorrar aunque sea una línea de código, o de simple gusto personal del programador.


Yo a veces elijo while() por encima del do..while() simplemente porque quiero que, quién vaya a leer mi código, lo primero que vea sea cuál es la condición (o condiciones) que se han de cumplir para que el bucle se repita.
Porque así facilito que quién lea mi código entienda mejor lo que se está haciendo.

Esto me ocurre a menudo. Si es un código para mí, lo escribo de cierta forma, donde prima la concisión y el ahorro de código.

Si es algo que tengo pensado compartir o es para alguien que ha pedido ayuda en un foro como este, entonces lo escribo de otra forma, donde prima la legibilidad y que sea fácil de entender.

Al compilador de Java le da igual una forma u otra    ;D
« Última modificación: 15 de Abril 2020, 23:34 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

CoduJ

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:Sistema de "regreso"
« Respuesta #4 en: 15 de Abril 2020, 23:40 »
¡Vale, muchas gracias por la ayuda!
« Última modificación: 25 de Octubre 2020, 18:51 por Alex Rodríguez »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".