【问题标题】:Return in Switch javascript [duplicate]在 Switch javascript 中返回 [重复]
【发布时间】:2019-12-25 01:49:47
【问题描述】:

大家好,我是编程新手,在练习 freecodecamp 时很难弄清楚return。这是在switch 语句中使用return 的情况。

示例

function sequentialSizes(val) {
    var answer = ""; 
    // Only change > code below this line 
    switch (val) { 
        case 1:
        case 2:
        case 3:
            return "Low";
            break;
        case 4:
        case 5:
        case 6:
            return "Mid"
            break;
        case 7:
        case 8:
        case 9:
            return "High";
            break;
    } 
    // Only change code above this line 
    return answer; 
}
// Change this value to test 
sequentialSizes(1);

我不明白的是,switch 语句针对不同的情况返回了低中值和高值,并且函数返回了之前未定义值的答案。但是代码有效,如何?逻辑是什么?是不是因为当我们返回答案时,它采用了switch 语句返回的值?

【问题讨论】:

    标签: javascript switch-statement return


    【解决方案1】:

    不使用变量答案。案例中的 return 语句指定函数在不同条件下将返回什么。 switch/case 语句的工作方式是它接受一个变量,在本例中为 val,并评估该值。它找到匹配的大小写,如果有,则使用默认值。一旦到达案例,它就会开始执行代码。例如,如果 val=5,则触发案例 5。代码开始执行,直到遇到一个 break 语句,此时它从 switch case 中退出。如果情况 5 被触发,我们返回“Mid”然后中断。这个场景中的break实际上并没有被执行,因为我们一点击return语句就从函数中返回。

    【讨论】:

      【解决方案2】:

      return 不会从特定语句返回,而是从函数返回。它可以在函数的任何地方使用,包括if语句、switch语句、forwhile循环等。函数立即结束,它的返回值是return语句的参数(或undefined 如果没有参数)。

      【讨论】:

        【解决方案3】:

        所以您正在尝试了解返回和切换的基本概念。让我们先尝试了解 return。

        function sequentialSizes(val) { 
          var answer = ""; 
          return answer;
        }
        

        当您调用该函数时,该函数将返回变量answer的值。

        switch case 是当输入匹配 case 值时执行的块。

        所以在这种情况下,如果您使用 sequentialSizes(1) 触发该函数,它将匹配案例 1 并进入该块,但它会返回未定义的 answer 变量。

        function sequentialSizes(val) { 
         var answer = ""; 
        
        switch (val) { 
         case 1: case 2: case 3: 
         return answer;
         break; 
        
         case 4: case 5: case 6: 
          return answer;
         break; 
        
         case 7: case 8: case 9: 
         return answer;
         break; 
         }
        }
        

        因此将值分配给 answer 变量并返回。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-17
          • 1970-01-01
          • 1970-01-01
          • 2016-06-29
          • 2023-04-08
          • 1970-01-01
          相关资源
          最近更新 更多