首页后端开发ASP.NETswitch语句中case后面的值必须是什么?

switch语句中case后面的值必须是什么?

时间2024-01-31 22:36:03发布访客分类ASP.NET浏览798
导读:收集整理的这篇文章主要介绍了switch语句中case后面的值必须是什么?,觉得挺不错的,现在分享给大家,也给大家做个参考。swITch语句中case后面的值必须是常量。因为switch语句中,会根据case标签后面的常量值,生成跳转表,只...
收集整理的这篇文章主要介绍了switch语句中case后面的值必须是什么?,觉得挺不错的,现在分享给大家,也给大家做个参考。

swITch语句中case后面的值必须是常量。因为switch语句中,会根据case标签后面的常量值,生成跳转表,只经过少数次数的比较,就可以跳到对应标签下面;如果允许变量,switch对于一个数据也只能从头到尾地进行比较,这就失去了意义。

switch语句中case后面的值必须是常量。

因为c语言中的 switch 不是 if 的替代品。

编译时会对 switch 进行优化,根据 case 标签后面的常量值,生成跳转表,只经过少数次数的比较,就可以跳到对应标签下面。

所以,标签也是不能重复的。如果允许变量,switch 只能退化成跟一连串的 if else, 对于一个数据也只能从头到尾地进行比较,也就失去了 switch 的意义。

跳转表和逐个比较,这两种方式的复杂度差很多。

这也是 python 没有引入和 C 语言里面的 switch case 相对应的控制结构的一个原因。

一般表达式:

switch (表达式){
    case 常量表达式1:    语句1    case 常量表达式2:    语句2       ┇    case 常量表达式n:    语句n    default:        语句n+1}
    

switch 是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch 是多分支选择语句。说得通俗点,多分支就是多个 if。

从功能上说,switch 语句和 if 语句完全可以相互取代。但从编程的角度,它们又各有各的特点,所以至今为止也不能说谁可以完全取代谁。

当嵌套的 if 比较少时(三个以内),用 if 编写程序会比较简洁。

但是当选择的分支比较多时,嵌套的 if 语句层数就会很多,导致程序冗长,可读性下降。

因此C语言提供 switch 语句来处理多分支选择。所以 if 和 switch 可以说是分工明确的。在很多大型的项目中,多分支选择的情况经常会遇到,所以 switch 语句用得还是比较多的。

推荐教程:《C语言》

以上就是switch语句中case后面的值必须是什么?的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

switch

若转载请注明出处: switch语句中case后面的值必须是什么?
本文地址: https://pptw.com/jishu/594568.html
C源程序中不能表示的数制是什么 c语言中的标识符只能由三种字符组成,它们是什么?

游客 回复需填写必要信息