如何在 Javascript 中的提示中使用 while 循环

how to use while loop on a prompt in Javascript

[

  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 所以我正在尝试使用一个提示,询问用户的名字,当用户输入一个名字时,它会进入另一个提示,但是当用户没有输入任何东西时,它会循环回到第一个提示,即询问用户的名字.如果用户输入了有效的输入,它就会转到程序提示符,如果用户输入任何输入,它就会继续,但如果用户没有输入,它就会循环到相同的提示符。我想为此使用 while 循环

看起来这是一道家庭作业题,或者你只是想学习一般的编程,所以为了帮助你进步,我不会给你代码本身,而是给你一个大概的方向。如果您遇到问题,可以提供您的代码,我们可以尝试帮助您解决任何具体错误。

有两种类型的循环,包括 while 关键字,while(X) {Y}do {Y} while(X)。如果您根本不知道循环是否会执行,则第一种类型很有用,而第二种更适合这里,因为当循环至少应执行一次时使用它,这是用户输入所必需的姓名。所以将提示结果赋值给你的name变量,然后检查name是否为空。如果条件评估为真(名称为空),它将循环返回。

您也可以将名称初始化为空字符串并使用 while(X) {Y} 循环,但其他形式更适合这里。

您可以创建一个函数,它基本上会执行一个 while 循环,直到用户输入一些输入。此函数 returns 输入值,如果它不为空。

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);

所以经过研究我终于找到了最合适的方法。感谢您的建议和帮助。我的问题主要是我如何将年份值安排为 while 循环的字符串,因为我正在使用 (year<1&&year>3),这导致了错误。在知道什么不能放之后,我终于弄明白了

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"));
}