javascript - 在 Switch javascript 中返回
问题描述
return
大家好,我是编程新手,在练习 freecodecamp 时很难弄清楚。这是一个使用return
inswitch
语句的案例。
例子
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
语句返回的值吗?
解决方案
不使用变量 answer。案例中的 return 语句指定了函数在不同条件下将返回的内容。switch/case 语句的工作方式是它接受一个变量,在本例中为 val,并评估该值。它找到匹配的大小写,如果有,则使用默认值。一旦到达案例,它就会开始执行代码。例如,如果 val=5,则触发案例 5。代码开始执行,直到遇到一个 break 语句,此时它从 switch case 中退出。如果情况 5 被触发,我们返回“Mid”然后中断。这个场景中的 break 实际上并没有被执行,因为我们一点击 return 语句就从函数中返回。
推荐阅读
- c# - 如何在 C# 中将列表拆分为视图
- raspberry-pi - 如何使用 RPI 停止使用 MFRC522 读取
- javascript - 如何有条件地在 GraphQL 查询中包含过滤参数?
- http - POST/GET Vs PUT/DELETE in CORS
- java - 同时汇总和收集流元素
- javascript - 从网页中获取所有 gif 图像的 js 代码
- python - 将带有资产文件夹的 Dash 部署到 AWS Elastic Beanstalk
- objective-c - Swift 参数化函数不允许在代码目标 c 中使用
- c++ - 在所有者对象的析构函数中取消 asio::steady_timer
- java - 项目 'org.springframework.boot:spring-boot-starter-parent:2.3.5.RELEASE' 未找到