这是一个简单的JS示例,我正在尝试“改进”它。
我是一个JS完全初学者,我希望我不会介入我的头在这里。
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");
}我要做的是不允许第二个提示符出现,直到正确地输入第一个提示符(即:黄色、红色、蓝色),不管用户输入“错误”值多少次。
我知道我必须用“时间”,但我不知道怎么用。用不同的方法尝试了几次,但没有得到想要的结果。
也尝试了一些有类似问题的线程,但是找不到解决这个具体问题的方法。
任何帮助或建议都是非常欢迎的。
谢谢。
发布于 2016-12-27 16:16:31
使用shown循环,如下所示
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"); 发布于 2016-12-27 16:17:22
试试这个:
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发布于 2016-12-27 16:20:46
我会这样做:
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");
} https://stackoverflow.com/questions/41348434
复制相似问题