是否存在类似if不匹配或else循环的情况。我需要帮助使这个JavaScript脚本工作
我如何根据不匹配或可能类似于Else循环得到响应,但这似乎不起作用,因为即使我正确回答了问题,我也能得到响应,如果我可以做类似于和if不匹配或类似的事情。我是JavaScript新手,所以我自己无法解决这个问题是否存在类似if不匹配或else循环的情况。我需要帮助使这个JavaScript脚本工作,javascript,Javascript,我如何根据不匹配或可能类似于Else循环得到响应,但这似乎不起作用,因为即使我正确回答了问题,我也能得到响应,如果我可以做类似于和if不匹配或类似的事情。我是JavaScript新手,所以我自己无法解决这个问题 var PromptAnswer3 = prompt("Well, what sports do you like to play?", ""); while (PromptAnswer3 === null | PromptAnswer3 === "") { a
var PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
while (PromptAnswer3 === null | PromptAnswer3 === "")
{
alert("You didn't answer");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
if (PromptAnswer3.match(/^(tennis|bowling|baseball|soccer|basketball|football|cricket|hockey|ice|hockey|rugby|track|golf|horseracing|water polo|swimming|biking|gymnastics|cheer-leading|skiing|snowboarding|iceskating|lacrosse|surfing|archery|boxing|kayaking|diving|spelunking|fencing|karate|judo|rockclimbing|softball|volleyball|wrestling|badminton|javelin throwing|synchronized swimming|yoga|ringette)!?$/i))
{
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
}
while (PromptAnswer3)
{
alert("I don't think that is a sport.");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
编辑[可能应作为答案添加]
这就是我所做的,让它工作。它简单易行。我按照一些人对答案的建议,将if语句放入循环中,而(PromptAnswer3),并将else和break放入if中,这样它就不会在第一次之后循环
else {
var PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
while (PromptAnswer3 === null | PromptAnswer3 === "")
{
alert("You didn't answer");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
while (PromptAnswer3)
{
if (PromptAnswer3.match(/^(tennis|bowling|baseball|soccer|basketball|football|cricket|hockey|ice|hockey|rugby|track|golf|horseracing|water polo|swimming|biking|gymnastics|cheer-leading|skiing|snowboarding|iceskating|lacrosse|surfing|archery|boxing|kayaking|diving|spelunking|fencing|karate|judo|rockclimbing|softball|volleyball|wrestling|badminton|javelin throwing|synchronized swimming|yoga|ringette)!?$/i))
{
alert("Haha yeah, " + PromptAnswer3 + "is pretty awesome.");
break;
}
else {
alert("I don't think that is a sport.");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
}
}
首先:
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
应该有一个额外的加号,不是吗
alert("Haha yeah, " + PromptAnswer3 + "is pretty awesome.");
这对我来说太过分了
另外,您的第二个while(PromptAnswer3)
应该是一个else。所以可能是这样的:
var PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
while (PromptAnswer3 === null | PromptAnswer3 === "") {
alert("You didn't answer");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
if (PromptAnswer3.match(/^(tennis|bowling|baseball|...)!?$/i)) {
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
} else {
alert("I don't think that is a sport.");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
}
我不知道你想什么时候退出,但看起来它永远不会退出。也许这就是你的意图。这些东西对我来说很奇怪,但我没有测试它。首先:
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
应该有一个额外的加号,不是吗
alert("Haha yeah, " + PromptAnswer3 + "is pretty awesome.");
这对我来说太过分了
另外,您的第二个while(PromptAnswer3)
应该是一个else。所以可能是这样的:
var PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
while (PromptAnswer3 === null | PromptAnswer3 === "") {
alert("You didn't answer");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
if (PromptAnswer3.match(/^(tennis|bowling|baseball|...)!?$/i)) {
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
} else {
alert("I don't think that is a sport.");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
}
我不知道你想什么时候退出,但看起来它永远不会退出。也许这就是你的意图。这些事情对我来说很奇怪,但我没有测试它。我想你只需要在
中添加一个else
,如果
if ([comparison is true]) {
// you have a match
} else {
// you do not
}
我认为您只需要在if
中添加else
if ([comparison is true]) {
// you have a match
} else {
// you do not
}
- 我觉得你的缩进风格很难读
- 您真的想在第一个if语句中使用按位or吗?(
|
)
- 使用
test
测试正则表达式是否与字符串匹配。不要为此使用match
- 只要颠倒
while
语句中的逻辑即可
var PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
while (!PromptAnswer3) {
alert("You didn't answer");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
while (!/^(tennis|bowling|baseball|soccer|basketball|football|cricket|hockey|ice|hockey|rugby|track|golf|horseracing|water polo|swimming|biking|gymnastics|cheer-leading|skiing|snowboarding|iceskating|lacrosse|surfing|archery|boxing|kayaking|diving|spelunking|fencing|karate|judo|rockclimbing|softball|volleyball|wrestling|badminton|javelin throwing|synchronized swimming|yoga|ringette)!?$/i.test(PromptAnswer3)) {
alert("I don't think that is a sport.");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
- 我觉得你的缩进风格很难读
- 您真的想在第一个if语句中使用按位or吗?(
|
)
- 使用
test
测试正则表达式是否与字符串匹配。不要为此使用match
- 只要颠倒
while
语句中的逻辑即可
var PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
while (!PromptAnswer3) {
alert("You didn't answer");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
while (!/^(tennis|bowling|baseball|soccer|basketball|football|cricket|hockey|ice|hockey|rugby|track|golf|horseracing|water polo|swimming|biking|gymnastics|cheer-leading|skiing|snowboarding|iceskating|lacrosse|surfing|archery|boxing|kayaking|diving|spelunking|fencing|karate|judo|rockclimbing|softball|volleyball|wrestling|badminton|javelin throwing|synchronized swimming|yoga|ringette)!?$/i.test(PromptAnswer3)) {
alert("I don't think that is a sport.");
PromptAnswer3 = prompt("Well, what sports do you like to play?", "");
}
alert("Haha yeah, " + PromptAnswer3 "is pretty awesome.");
这样的问题对于do-while构造来说总是一个很好的用例
这样的问题对于do-while构造总是一个很好的用例。他的意思是将最后一个while循环更改为else语句,这样它只在与正则表达式不匹配时运行。他的意思是将最后一个while循环更改为else语句,这样它只在与正则表达式不匹配时运行。除了按位执行之外,还有其他建议吗?我不是很熟悉javascript。@user1067625是的,您应该只使用逻辑or(
| |
)。有关详细信息,请参见Mozilla's fine。但是,在上面的代码中,我完全去掉了运算符,因为如果值是”
,null
,或0
,则相当于false
。嗯,好吧!谢谢你的帮助!除了点评之外还有什么建议吗?我不是很熟悉javascript。@user1067625是的,您应该只使用逻辑or(| |
)。有关详细信息,请参见Mozilla's fine。但是,在上面的代码中,我完全去掉了运算符,因为如果值是”
,null
,或0
,则相当于false
。嗯,好吧!谢谢你的帮助!另一个问题。我将如何使其在重新提示时有最大的尝试次数。我想因为我只有13岁,我需要一些帮助。请不要更新你的问题来包含答案,而是通过点击左边的勾号来接受下面的答案之一。(如果你的最终解决方案与所有答案都不一样,那么你应该自己发布一个答案并接受。)我的错,我是这些论坛的新手,我没有足够的代表来接受答案,但当我获得更多的代表时,我会接受,并且在我意识到我不应该这么做后,意外地这样做了:D对不起,另一个问题。我将如何使其在重新提示时有最大的尝试次数。我想因为我只有13岁,我需要一些帮助。请不要更新你的问题来包含答案,而是通过点击左边的勾号来接受下面的答案之一。(如果你的最终解决方案与所有答案都不一样,那么你应该自己发布一个答案并接受。)我的错,我是这些论坛的新手,我没有足够的代表来接受答案,但当我获得更多的代表时,我会接受,而且在我意识到我不应该这么做之后,我意外地这么做了:D对不起。