You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

这段Switch语句存在什么问题?为何实际输出与预期不符?

问题原因

你的代码里的switch语句每个case分支都缺少break关键字,导致贯穿执行——当匹配到某个case后,会继续执行后续所有case和default的代码,这就是实际输出和预期不符的原因。比如当i=1时,会依次打印"Gold Medal"、"Silver Medal"、"Bronze Medal"和1,而不是只打印"Gold Medal"。

修复后的代码
for (var i = 1; i <= 10; i++) {
  switch (i) {
    case 1:
      console.log("Gold Medal");
      break; // 终止当前分支,跳出switch
    case 2:
      console.log("Silver Medal");
      break;
    case 3:
      console.log("Bronze Medal");
      break;
    default:
      console.log(i);
  }
}
说明
  • break关键字的作用是在匹配到对应case并执行完代码后,立即跳出switch语句,避免执行后续的分支代码。
  • 由于default是最后一个分支,后面没有其他代码,所以可以不用加break,但加上也不会有问题,风格更统一。

内容的提问来源于stack exchange,提问作者Mira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:44:16