Codecademy功能/开关

时间:2015-06-09 00:16:54

标签: javascript

我正在通过Codecademy工作。我需要创建一个获取电影名称的功能,并根据输入的电影进行电影评论。我需要使用switch语句来执行此操作。

它要求用户创建一个名为getReview的函数,并且必须使用switch来提供可能的输出。我不确定函数和switch之间的语法/关系。这是我写的:

var getReview = function (movie) {
    switch (movie) {
          case "Toy Story 2":
          "Great story. Mean prospector."
           break;
          case "Finding Nemo":
             "Cool animation, and funny turtles"
             break;
         case "The Lion King":
            "Great songs."
             break;
         default:
             "I don't know!"
             break;
     }
  };

我从Codecademy收到一条错误,询问“你确定你正在回复正确的事吗?”

2 个答案:

答案 0 :(得分:1)

您应该为每个case添加一个return语句。

通常,您希望在交换机中为每个break添加case语句。但是,既然您已经return,那么您的切换就不可能掉线。"如果你不确定这意味着什么,请看这个例子:

switch (x) {
    case 1:
        console.log("hi #1")
    case 2:
        console.log("hi #2")
        break;
    case 3:
        console.log("hi #3")
        break;
}

如果x == 1,那么

hi #1
hi #2

将出现在控制台中。将其与x == 2x == 3进行比较。然后,只有"hi #2""hi #3"分别出现在控制台中。

这是因为,在完成case 1后,计算机会继续运行:您需要break才能停止它。但是,通过return,您基本上会调用break,因为函数会返回,因此不会继续通过case

无论哪种方式,这都是我设置它的方式:

var getReview = function (movie) {
    switch (movie) {
        case "Toy Story 2": return "Great story. Mean prospector."
        // all your other cases
        default: return "movie not in library"
    }
 }

或者(语法不是很干净),你可以在最后返回一个变量:

var getReview = function (movie) {
    var line = ""
    switch (movie) {
        case "Toy Story 2":
            line =  "Great story. Mean prospector."
            break;
        // all your other cases
        default:
            line = "movie not in library"
            break;    // this `break` is optional
    }
    return line
 }

答案 1 :(得分:0)

将一个字符串放在一个语句中并没有对它做任何事情。该函数应该返回消息,因此您必须使用return语句。



var getReview = function(movie) {
  switch (movie) {
    case "Toy Story 2":
      return "Great story. Mean prospector."
      break;
    case "Finding Nemo":
      return "Cool animation, and funny turtles"
      break;
    case "The Lion King":
      return "Great songs."
      break;
    default:
      return "I don't know!"
      break;
  }
};

alert(getReview(prompt("What movie?")));