![JavaScript编程精解(原书第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/171/30573171/b_30573171.jpg)
上QQ阅读APP看书,第一时间看更新
2.15 使用switch调度值
如下代码所示的情况并不少见:
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0040_0005.jpg?sign=1739206091-Uv6uOBe9BoKEidbPcTKAiuoaPIZgHFok-0-72c99c0167c10ed2729a5485a98ff877)
为了以更直接的方式表达这种“调度”,人们设计了一个叫作switch的结构。不幸的是,JavaScript用于此的语法(它从C/Java系列的编程语言中继承的)有点笨拙——一连串的if语句可能看起来更好。下面是一个示例:
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0041_0001.jpg?sign=1739206091-tDIsf5FQoeEsPXv8A1poTe58M08MRYTg-0-052f6f20ae50cd7c33bc4d167290f833)
你可以将任意数量的case标签放在通过switch开启的块内。程序将从与提供给switch的值对应的标签处开始执行,或者如果未找到匹配值,则在default处开始执行。它将继续执行,甚至跨其他标签执行,直到它遇到break语句为止。在某些情况下,例如示例中的"sunny"情况,这可用于在case之间共享一些代码(建议在阳光明媚(sunny)和多云(cloudy)的天气外出)。但要小心——很容易忘记这样的break,这将导致程序执行你不希望执行的代码。