我试图在用户输入任何内容时检查用户输入中是否存在单词“ @ gmail.com”,如果该单词不存在,请重复该问题,直到用户输入单词“ @ gmail.com”。 com”,但控制台中出现令牌错误,出现意外的),我刚刚开始学习循环,但想仅通过for循环和if语句尝试这种想法。
for (var userInput = prompt("enter your email"); userInput.indexOf("@gmail.com") === -1); {
var userInput = prompt("enter your email");
if (userInput.indexOf("@gmail.com") !== -1) {
alert("Welcome");
}
}
答案 0 :(得分:1)
据我了解,您想做什么:
var userInput;
do {
userInput = prompt("enter your email");
} while(userInput.indexOf("@gmail.com") === -1)
alert("Welcome");
这可能不是最好的方法。使用这样的脚本,您无需检查“ @ gmail.com”的位置,也无法停止或取消等。
答案 1 :(得分:1)
您的for循环语法是错误的。大括号中必须包含3条语句,例如:
for(var i = 0; i < 2; i++) {
//Do something
}
循环开始时,一次执行第一条语句。 第二条语句检查是否应执行循环内的代码。 每个循环之后,第三条语句就会被执行。
因此,您的情况应该是:
//We ignore the last statement, but have to keep the semicolon!
for (var userInput = prompt("enter your email"); userInput && userInput.indexOf("@gmail.com") === -1; ) {
userInput = prompt("enter your email");
if (userInput && userInput.indexOf("@gmail.com") !== -1) {
alert("Welcome");
}
}
这将像您一样在for循环中循环,但是当然Félix Brunets答案对此更为优雅。
我希望这会有所帮助。 -思维