为什么以下回复说"你已经赢得了智能手表和马戏团门票"?
我认为胜利者必须等于3,以便选择包含"智能手表和"然后它会自动从列表中下载到默认值并将其添加到最后,让它说出“#34;你已经赢得了智能手表和马戏团的门票"但事实并非如此。
设置""
的奖品如何使这个打印出来?
这是Udacity课程的一部分,我不明白这段代码是如何运作的,网站也不能很好地解释。
var prize = "";
switch (winner) {
case 1:
prize += "a trip for two to the Bahamas and ";
case 2:
prize += "a four piece furniture set.";
break;
case 3:
prize += "a smartwatch and ";
default:
prize += "tickets to the circus.";
}
console.log("You've won " + prize);

答案 0 :(得分:0)
如果获胜者点击案例3,它将附加智能手表字符串。然后,在该声明之后没有break
,因此它也会落入默认情况。
答案 1 :(得分:0)
在switch语句中,当您使用case
时,它将运行命令取决于您的变量(此代码中的获胜者)
如果您在案例中未使用break
,则会一直使用break
关键字或default
案例。
因此,如果你的winner == 1
,那么你的prize
将“两人前往巴哈马和四件套家具。”; ,它会到达{{ 1}}关键字,所以退出switch语句!
因此,如果您的break
winner ==3
是智能手表并且是马戏团的门票。“
答案 2 :(得分:0)
我试图了解你的要求,我无法完全理解。 我会介绍获取
的逻辑“你赢得了智能手表和马戏团的门票”
给你。
首先用空字符串“”初始化奖品。
prize = "";
当获胜者等于3时,奖品将是“智能手表”。
prize = "a smartwatch and ".
//becoz prize += "a smartwatch and ";
然后因为这条线后没有休息。因此,程序将继续默认情况并添加“马戏团门票”。奖品
prize = "a smartwatch and tickets to the circus.";
//becoz prize += "tickets to the circus.";
因此最终输出是“你赢了”+奖品;
result = "You've won " + prize;
// equal to
result = "You've won " + "a smartwatch and tickets to the circus.";