[
let welcome; welcome = "Welcome to my first COMP1231 Program."; alert(welcome) let name; name =(prompt("Please enter your name:?", "Tafadzwa Marisa" )); let program; program =(prompt("Please enter your Program:?", "COMP1231" ));] 1 Entonces, estoy tratando de usar un mensaje que le pide al usuario su nombre y cuando el usuario ingresa un nombre, pasa a otro mensaje, pero cuando el usuario no ingresa nada, regresa al primer mensaje que es preguntar por el nombre de los usuarios. Si el usuario ingresa una entrada válida, luego va al indicador del programa donde, si el usuario ingresa cualquier entrada, continúa, pero si el usuario no lo hace, vuelve al mismo indicador. Quiero usar el bucle while para esto.
Parece que esta es una pregunta de tarea o simplemente está tratando de aprender programación en general, por lo que para ayudarlo a progresar no le daré el código en sí, sino una dirección general. Si tiene problemas con eso, puede proporcionar su código y podemos intentar ayudarlo con cualquier error específico.
Hay dos tipos de bucles, incluida la palabra clave while, while(X) {Y} y do {Y} while(X) . El primer tipo es útil si no sabe si el ciclo se ejecutará en absoluto, mientras que el segundo es más apropiado aquí, ya que se usa cuando el ciclo debe ejecutarse al menos una vez, lo cual es necesario para que el usuario ingrese el nombre. Asigne el resultado de la solicitud a su variable de nombre y luego verifique si el nombre está vacío. En caso de que la condición se evalúe como verdadera (el nombre está vacío), regresará.
También puede inicializar el nombre como una cadena vacía y usar un ciclo while(X) {Y} pero la otra forma encaja mejor aquí.
Puede crear una función que básicamente ejecutará un ciclo while hasta que el usuario ingrese alguna entrada. Esta función devuelve el valor de entrada si no está vacío.
function loopUntilNonEmptyInput(prompt_ques, default_inp) { let retval; while (true) { retval = (prompt(prompt_ques, default_inp)); if (retval !== '') return retval; alert("Empty input, please re-try"); } } let welcome; welcome = "Welcome to my first COMP1231 Program."; alert(welcome); let name = loopUntilNonEmptyInput("Please enter your name:?", "Tafadzwa Marisa"); let program = loopUntilNonEmptyInput("Please enter your Program:?", "COMP1231"); console.log(name, program);Entonces, después de investigar, finalmente pude encontrar la mejor manera adecuada. Gracias por sus sugerencias y su ayuda. Mi problema era principalmente sobre cómo estaba organizando el valor del año como una cadena para el ciclo while mientras usaba (año <1 y año> 3) que estaba causando el error. Después de tener una idea de lo que no poner, finalmente lo descubrí.
let year; // taking year value as string year =(prompt("Please enter your year of study:", "1")); // loop will continue until user 1 or 2 or 3 while(parseInt(year) <1 || parseInt(year) > 3 || year=== ""){ // again taking year as string year = (prompt("Please enter your year of study:", "1")); }