Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-Make开关:默认重启提示_Javascript_Switch Statement_Default - Fatal编程技术网

Javascript-Make开关:默认重启提示

Javascript-Make开关:默认重启提示,javascript,switch-statement,default,Javascript,Switch Statement,Default,我试图问用户一个简单的问题: //将您的代码写在下面! var food=prompt(“你喜欢华夫饼干吗?”); 开关(食物){ 案例“是”: 案例“是”: 警惕(“好!”); 打破 案例“否”: 案例“否”: 警惕(“但为什么!”); 打破 违约: var food=prompt(“这不是答案,你喜欢华夫饼干吗?”); 打破 }您没有任何执行循环的机制。尝试用while循环将其包围。您需要一种方法来重新评估第二个提示,因为它实际上不会出现在任何地方。您需要将其按如下方式分开: functi

我试图问用户一个简单的问题:

//将您的代码写在下面!
var food=prompt(“你喜欢华夫饼干吗?”);
开关(食物){
案例“是”:
案例“是”:
警惕(“好!”);
打破
案例“否”:
案例“否”:
警惕(“但为什么!”);
打破
违约:
var food=prompt(“这不是答案,你喜欢华夫饼干吗?”);
打破

}
您没有任何执行循环的机制。尝试用
while
循环将其包围。

您需要一种方法来重新评估第二个提示,因为它实际上不会出现在任何地方。您需要将其按如下方式分开:

function askMe() {
   var food = prompt("Do you like waffles?");
   switch (food) {
    case "yes":
    case "Yes":
        alert("Good!");
        break;
    case "no":
    case "No":
        alert("But why!");
        break;
    default:
        askMe();

        break;
  }
}

askMe();
函数askForFood(questionArgument){
var food=提示(问题参数);
开关(food.toLowerCase()){//bedry!使用小写!
大小写“是”://是小写字母!
警惕(“好!”);
打破
案例“否”:
警惕(“但为什么!”);
打破
违约:
askForFood(“这不是答案,你喜欢华夫饼吗?”);//见鬼去吧
打破
}
}

询问食物(“你喜欢华夫饼吗?”);//第一次善意地提问
我知道你已经收到了一个有效的答案,但这是一个完美的应用程序,而且我看到你还没有学会如何使用它们。看它多短啊

var food = "Do you like waffles?";
while ((food = window.prompt(food, "yes")) != "yes" && food != "no") {
    food = "That\'s not an answer, do you like waffles?";
}
window.alert("You said " + food + ".");
这就是它的工作原理

在单词while之后,有一长行代码被括号包围。这是一个条件。条件是“如果提供的答案不是肯定的,也不是否定的”。只要条件保持为真,while循环就会重复自身

首先,我将变量food设置为我想要使用的消息。然后,在while循环的条件下,我创建了一个提示符:

food = window.prompt(food, "yes")
你会注意到我在这里重用了我的旧食物变量。我不想创建一个新的,所以我重用了我的旧的。您会注意到,我将提示符中的消息设置为food变量的前一个值。还要注意,为了方便用户,我设置了默认消息“yes”

如果提示的值不等于yes或no,它会将food变量的值设置为第二条消息。然后,它一次又一次地重复while循环的条件,直到我们得到肯定或否定的答案

最后,当用户回答是或否时,while循环的条件不再为true,因此它跳过while循环来告诉用户他们的答案

尝试不同的方法来做事情,看看是否可以缩短代码并提高性能,这是很好的!只需确保您已明确回答了什么,否则用户将被无限重复的提示所困扰,不知道该做什么,而按“取消”则没有帮助,因为它不是“是”或“否”的答案

您甚至可以通过检查用户是否按下Cancel,然后停止while循环来进一步改进此代码

var food = "Do you like waffles?";
while ((food = window.prompt(food, "yes")) && food != "yes" && food != "no") {
    food = "That\'s not an answer, do you like waffles?";
}
if (!food) {
    window.alert("Aw, you cancelled out!");
} else {
    window.alert("You said " + food + ".");
}

在这里,我更改了while循环中的条件。我们首先检查食物变量是否可以设置为提示符!如果不能,那是因为用户一定按了“取消”。稍后,我们还会检查是否设置了food变量,因为如果用户按了Cancel并且什么也没说,我们不想告诉用户他们说了什么。

我不太清楚该怎么做,因为我是javascript新手。你能告诉我怎么做吗?代码运行得很好。应该是上票而不是下票。@SebastianOlsen你必须实际运行它。。就像在调用函数中一样
askMe()
Great!作品很有魅力,评论也很好。