当前位置: 首页 > news >正文

岳阳网站开发商城梵克雅宝官网旗舰店

岳阳网站开发商城,梵克雅宝官网旗舰店,查询域名备案信息,微信小程序广告投放在 switch 语句中使用表达式比较时,编译器会生成一个查找表,其中包含所有表达式的值和对应的 case 标签。因此,与使用常量或字面量比较相比,使用表达式比较可能会略微降低性能。 只有当 switch 语句中的所有 case 标签都使用常量或…

在 switch 语句中使用表达式比较时,编译器会生成一个查找表,其中包含所有表达式的值和对应的 case 标签。因此,与使用常量或字面量比较相比,使用表达式比较可能会略微降低性能。

只有当 switch 语句中的所有 case 标签都使用常量或字面量时,编译器才会生成查找表。如果 switch 语句中包含任何表达式,编译器将使用不同的机制来评估这些表达式,这与 if 语句类似。

因为 switch 语句在编译时可以优化为查找表,而 if 语句则需要在运行时逐个评估每个条件。查找表可以提供更快的查找速度,尤其是在 case 标签较多时。所以,在相同的机器、系统和比较条件下,switch 语句的性能通常大于或等于 if 语句

下面简单测试一下:

选择相同的6个分支,在循环中来判断。

            Stopwatch sw = new Stopwatch();int iterations = 300000000;int value = 3;for (int j = 0; j < 6; j++){Console.WriteLine($"第{j + 1}次比较-----------");//使用 if 语句进行测试sw.Start();for (int i = 0; i < iterations; i++){if (value == 1) { }else if (value == 2) { }else if (value == 3) { }else if (value == 4) { }else if (value == 5) { }else if (value == 6) { }}sw.Stop();Console.WriteLine("If 语句运行时间:{0} 毫秒", sw.ElapsedMilliseconds);//使用 switch 语句进行测试sw.Restart();for (int i = 0; i < iterations; i++){switch (value){case 1: break;case 2: break;case 3: break;case 4: break;case 5: break;case 6: break;}}sw.Stop();Console.WriteLine("Switch 语句运行时间:{0} 毫秒", sw.ElapsedMilliseconds);}

结果:

结论:字面量或常量时,switch会优于if.

修改上面全面改为表达式:

            Stopwatch sw = new Stopwatch();int iterations = 300000000;int value = 3;for (int j = 0; j < 6; j++){Console.WriteLine($"第{j + 1}次比较-----------");//使用 if 语句进行测试sw.Start();for (int i = 0; i < iterations; i++){if (value < 1) { }else if (value < 2) { }else if (value < 3) { }else if (value < 4) { }else if (value < 5) { }else if (value < 6) { }}sw.Stop();Console.WriteLine("If 语句运行时间:{0} 毫秒", sw.ElapsedMilliseconds);//使用 switch 语句进行测试sw.Restart();for (int i = 0; i < iterations; i++){switch (value){case < 1: break;case < 2: break;case < 3: break;case < 4: break;case < 5: break;case < 6: break;}}sw.Stop();Console.WriteLine("Switch 语句运行时间:{0} 毫秒", sw.ElapsedMilliseconds);}

结果:

结论:看来简单的常量表达式也会有优化,效率也会提升。

缺点:switch不能用于其它复杂的表达式,switch 语句中的 case 标签必须是常量表达式。不能包含变量或其他会改变其值的内容。

但大多数情况下,都要用到复杂的表达式和变量表达式,所以一般用IF而不能用Switch。

switch因为里面会根据case生成查找表,所以一般查找表各case是唯一的,在输入时就会检查,如果case条件重复或矛盾,就会有红色提示。但if则不会,那怕条件重复也不会提示.

http://www.15wanjia.com/news/163856.html

相关文章:

  • 网站建设需要知道什么网站注册域名查询
  • 免费摄影网站推荐西安网页设计培训排名
  • 如何建立免费的网站58招聘网最新招聘信息
  • 如何让百度收录自己的网站信息表情制作器
  • 网页设计作品长春seo外包
  • 建设网站预算手机上传视频网站开发
  • 怎样购买网站程序wordpress 编辑器推荐
  • wordpress的主题上传了没有显示河南seo关键词排名优化
  • 番禺区大石做网站宿迁房产网官网
  • 网站建设开发合同书wordpress在本地运行很慢
  • 涪城网站建设vue移动端开发
  • 成都设计公司网站中文域名注册官网
  • 江西学校网站建设宁波seo推广怎么做
  • 网站 自建空间遵义网站制作
  • 基础型网站套餐软文写作案例
  • 自己怎么设计口罩网站seo优化工具
  • 购买建立网站费怎么做会计凭证抖音电商网站建设
  • 网站开发主管要做什么信息管理系统网站开发
  • 邢台建网站公司网站用的横幅广告怎么做
  • 商城网站建设公司电话免费素材库网
  • 淘宝客怎么自己做网站及APPwordpress爱好者
  • 房地产网站怎么推广丹徒做网站
  • 网站建设的公司收费标准网站建设视频教程
  • 安徽响应式网站建设哪家有敦化网站建设
  • 带动画的网站模板萍乡做网站的
  • 免费模板网站建设怎样在手机上做网站
  • asp.net企业网站怎么做网站出肉狗
  • 给甜品网站做seo怎样搭建一个网站
  • 江苏省建设局官方网站查询wordpress主题恶意代码
  • 综合性电子商务网站有哪些站长之家ip地址归属查询