测试结果:switch性能更高。

测试过程:新建一个Win32 Console Application, 在cpp文件中添加下面代码

#include "stdafx.h"
#include <Windows.h> void SwitchTime(int a)
{
for (int i = ; i < ; ++i)
{
switch(a)
{
case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; default:
a = ;
break;
}
}
} void IfTime(int a)
{
for (int i = ; i < ; ++i)
{
if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else
{
a = ;
}
}
} int _tmain(int argc, _TCHAR* argv[])
{
unsigned long switchBegin= ::GetTickCount();
SwitchTime();
unsigned long switchEnd= ::GetTickCount(); unsigned long ifBegin= ::GetTickCount();
IfTime();
unsigned long ifEnd= ::GetTickCount(); char result[];
memset(result, , sizeof(result));
sprintf(result, "SwitchTime: %d ms, IfTime: %d ms", switchEnd - switchBegin, ifEnd - ifBegin);
MessageBoxA(NULL, result, "switch与if 性能测试", MB_OK);
return ;
}

分别测试输入值0、10、19、20、-1、200

运行exe效果如下,

最新文章

  1. [IOS swift对比oc]
  2. thinkphp的url地址区分大小写?
  3. SQL如何将A,B,C替换为&#39;A&#39;,&#39;B&#39;,&#39;C&#39;
  4. 【代码】verilog之:按键消抖
  5. Nginx重写规则指南 转
  6. XE10 Seattle error___seh_personality_v0
  7. NOIP2010 乌龟棋
  8. centos6搭建本地openstack软件源
  9. JVM菜鸟进阶高手之路十二(jdk9、JVM方面变化, 蹭热度)
  10. destoon各栏目调用汇总
  11. Dreamweaver cs6中文版完整安装步骤:
  12. event跨进程通信
  13. selenium用法详解
  14. Vue入门基础
  15. unittest的使用三——断言
  16. java中数组、集合、字符串之间的转换,以及用加强for循环遍历
  17. 使用css将图像居中
  18. &lt;a&gt;标签中的href如何调用js代码
  19. org.springframework.jdbc.UncategorizedSQLException
  20. 基于鸢尾花数据的PCA降维处理

热门文章

  1. C# WPF使一个窗口挡在最前面,且不处理此窗口就不能点击其他窗口
  2. C语言进阶—— 单引号和双引号14
  3. dategrip破解
  4. 翻译 | “扩展asm”——用C表示操作数的汇编程序指令
  5. Python logging 模块简介
  6. ClassNotFountException 与 NoClassDefineError
  7. 4x4矩阵键盘 扫描程序
  8. linux socket下send()&amp;recv()调用
  9. 剑指Offer - 九度1391 - 顺时针打印矩阵
  10. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目2