首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在输入想要的值之前每次都显示提示符

如何在输入想要的值之前每次都显示提示符
EN

Stack Overflow用户
提问于 2016-12-27 16:09:50
回答 4查看 52关注 0票数 0

这是一个简单的JS示例,我正在尝试“改进”它。

我是一个JS完全初学者,我希望我不会介入我的头在这里。

代码语言:javascript
复制
var color1 = prompt("Enter first color: yellow, red or blue");
var color2 = prompt("Enter second color: yellow, red or blue"); 

if (color1 == "yellow" && color2 == "yellow"){
      console.log("mixing of these two colors makes yellow");
    }
if (color1 == "red" && color2 == "red"){
      console.log("mixing of these two colors makes red");
    }
if (color1 == "blue" && color2 == "blue"){
      console.log("mixing of these two colors makes blue");
    }
if (color1 == "yellow" && color2 == "red" || color1 == "red" && color2 == "yellow"){
      console.log("mixing of these two colors makes orange");
    }
if (color1 == "yellow" && color2 == "blue" || color1 == "blue" && color2 == "yellow"){
      console.log("mixing of these two colors makes green");
    }
if (color1 == "blue" && color2 == "red" || color1 == "red" && color2 == "blue"){
      console.log("mixing of these two colors makes purple");
    }

我要做的是不允许第二个提示符出现,直到正确地输入第一个提示符(即:黄色、红色、蓝色),不管用户输入“错误”值多少次。

我知道我必须用“时间”,但我不知道怎么用。用不同的方法尝试了几次,但没有得到想要的结果。

也尝试了一些有类似问题的线程,但是找不到解决这个具体问题的方法。

任何帮助或建议都是非常欢迎的。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-27 16:16:31

使用shown循环,如下所示

代码语言:javascript
复制
var colors = ["red","yellow","blue"];
var color1 = prompt("Enter first color: yellow, red or blue");
while(colors.indexOf(color1)==-1){
    color1 = prompt("Enter first color: yellow, red or blue");
}
var color2 = prompt("Enter second color: yellow, red or blue"); 
票数 2
EN

Stack Overflow用户

发布于 2016-12-27 16:17:22

试试这个:

代码语言:javascript
复制
var valid_colors = ['yellow', 'red', 'blue'];
var color1;
var color2;

color1 = prompt("Enter first color: yellow, red or blue");

while (!~valid_colors.indexOf(color1)) {
    color1 = prompt("Enter first color: yellow, red or blue");
}

color2 = prompt("Enter second color: yellow, red or blue"); 

while (!~valid_colors.indexOf(color2)) {
    color2 = prompt("Enter second color: yellow, red or blue");
}

//... continue with your code
票数 0
EN

Stack Overflow用户

发布于 2016-12-27 16:20:46

我会这样做:

代码语言:javascript
复制
var allowedColors = ['yellow', 'red', 'blue']; //we create array of valid input

var color1 = ''; // initial value is not correct, so user is prompted at least once.

var color2 = '';

while(allowedColors.indexOf(color1) === -1){

    color1 = prompt("Enter first color: yellow, red or blue");

}

while(allowedColors.indexOf(color2) === -1){

    color2 = prompt("Enter second color: yellow, red or blue"); 

} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41348434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档