如何重复某段代码

how to repeat a certain piece of code

本文关键字:代码 段代码 何重复      更新时间:2023-09-26

当我声明一个if语句来检查用户是否输入了数字而不是直接的单词或字母时,它会说"不是有效的输入,请将您的响应输入为数字。"但一旦您在警报框上单击"确定",当它显示该消息时,您在提示中键入的错误或不是数字的消息仍会被放入对象中。

如果你键入的不是数字,它会一直说"不是有效的输入,请将你的响应输入为数字",直到你键入数字,我该怎么做?

var storeUsersInfo = [];
var amountOfUsers = prompt("How many users do you want?");
amountOfUsers = parseInt(amountOfUsers);
function returnUserInput() {
    var askFirstName = prompt("What is your first name?");
    var askLastName = prompt("What is your last name" + " " +     titleCase(askFirstName) + "?");
    var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
if(!Number.isInteger(Number.parseInt(askAge))) {
    alert("Not a valid input, please enter your response as a number.");
};
    return {
        firstName: titleCase(askFirstName),
        lastName: titleCase(askLastName),
        age: askAge
    };
};
function titleCase(string) {
    return string.charAt(0).toUpperCase() + string.slice(1); 
};
for(var i = 0; i < amountOfUsers; i++) {
    storeUsersInfo[i] = returnUserInput();
}
console.log(storeUsersInfo);

prompt、check和alert置于循环中:

function returnUserInput() {
    var askFirstName = prompt("What is your first name?");
    var askLastName = prompt("What is your last name" + " " +     titleCase(askFirstName) + "?");
    while (true) {
        var askAge = prompt("How old are you" + " " + titleCase(askFirstName) 
                            +  " " + titleCase(askLastName) + "?");
        if(Number.isInteger(Number.parseInt(askAge))) break; // OK, exit loop
        alert("Not a valid input, please enter your response as a number.");
    };
    return {
        firstName: titleCase(askFirstName),
        lastName: titleCase(askLastName),
        age: askAge
    };
};

相反,递归地再次显示对函数的警报调用。

if(!Number.isInteger(Number.parseInt(askAge))) {
    returnUserInput()
};

它将一次又一次地提示,直到响应正常。