前言:

分支数

小于三时,else if 效率更高

等于三时,效率近乎相同

大于三时,switch case效率更高

if与switch小于三次对比:

package Action;public class HelloWorld {static int count=10000000;public static void main(String[] args) {if_test();System.gc();//清理一下switch_test();}public static void if_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {if(i==(10000000-1)) {System.out.println("if判断一千万次");}}long end = System.currentTimeMillis();System.out.println("if判断一千万次"+(end-start)+"毫秒");}public static void switch_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {switch(i) {case 10000000-1:System.out.println("switch判断一千万次");break;}}long end = System.currentTimeMillis();System.out.println("switch判断一千万次"+(end-start)+"毫秒");}
}

区别还算明显吧,量少,可以用一亿试试。

package Action;public class HelloWorld {static int count=100000000;public static void main(String[] args) {if_test();System.gc();//清理一下switch_test();}public static void if_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {if(i==(100000000-1)) {System.out.println("if判断一亿次");}}long end = System.currentTimeMillis();System.out.println("if判断一亿次"+(end-start)+"毫秒");}public static void switch_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {switch(i) {case 100000000-1:System.out.println("switch判断一亿次");break;}}long end = System.currentTimeMillis();System.out.println("switch判断一亿次"+(end-start)+"毫秒");}
}

这就很明显了。

if与switch等于三次对比:

package Action;public class HelloWorld {static int count=10000000;public static void main(String[] args) {switch_test();if_test();}public static void if_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {if(i==(10000000-1)) {System.out.println("if判断一千万次");}else if(i==-1) {}else if(i==-2){}}long end = System.currentTimeMillis();System.out.println("if判断一千万次"+(end-start)+"毫秒");}public static void switch_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {switch(i) {case 10000000-1:System.out.println("switch判断一千万次");break;case -1:break;case -2:break;}}long end = System.currentTimeMillis();System.out.println("switch判断一千万次"+(end-start)+"毫秒");}
}

三个的时候其实还是if快一些。

if与switch大于三次对比:

package Action;public class HelloWorld {static int count=10000000;public static void main(String[] args) {if_test();System.gc();switch_test();}public static void if_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {if(i==(10000000-1)) {System.out.println("if判断一千万次");}else if(i==-1) {}else if(i==-2){}else if(i==-3){}else if(i==-4){}else if(i==-5){}else if(i==-6){}else if(i==-7){}else if(i==-8){}else if(i==-9){}else if(i==-10){}}long end = System.currentTimeMillis();System.out.println("if判断一千万次"+(end-start)+"毫秒");}public static void switch_test() {long start = System.currentTimeMillis();for (int i = 0; i <count; i++) {switch(i) {case 10000000-1:System.out.println("switch判断一千万次");break;case -1:break;case -2:break;case -3:break;case -4:break;case -5:break;case -6:break;case -7:break;case -8:break;case -9:break;case -10:break;}}long end = System.currentTimeMillis();System.out.println("switch判断一千万次"+(end-start)+"毫秒");}
}

这回效果还是比较明显的,用一亿再试试:

这就更明显了。

希望能对大家有所帮助,欢迎一键三连。

【蓝桥杯Java_C组·从零开始卷】第二节(附)、if与switch效率比较(千万次/一亿次)相关推荐

  1. 【蓝桥杯Java_C组·从零开始卷】第四节(附)、字符串常用函数

    导读 本文章将java中字符串常用的字符串进行罗列与对应demo的示例,帮助java初学者与蓝桥杯参赛的选手提升对JavaSE的理解. 目录 字符串由来 字符串转成byte数组 常用字符串函数列表: ...

  2. 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组

    整篇文章为对java数组的完整理解以及部分排序,并有一些简单的demo,经典的案例与蓝桥杯的一些经典数组题有专门的文章梳理. 目录 数组概述 什么是数组 数组的结构 数组的特点: 数组分类 一维数组声 ...

  3. 【蓝桥杯Java_C组·从零开始卷】第二节、ifswitch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)

    目录 if语句的三种格式 单分支 简写语法 可能出现的异常 双分支 else if 是多分支件判断·与纯if两者区别 案例一.判断一个正整数的奇偶性 案例二.考试奖励 switch语句三种用法 swi ...

  4. 【蓝桥杯Java_C组·从零开始卷】第一节、环境与变量类型运算符与类型分析

    B站高清回放地址: [https://www.bilibili.com/video/BV1Bm4y1Q7Wt?spm_id_from=333.999.0.0] 目录 一.Java环境搭建与使用(Ecl ...

  5. 【蓝桥杯Java_C组·从零开始卷】第七节、递归

    目录 递归概述 递归: 循环: 疑问: 是什么递归? 递归的精髓(思想)是什么? 递归的三要素 1). 明确递归终止条件 2). 给出递归终止时的处理办法 3). 提取重复的逻辑,缩小问题规模* 递归 ...

  6. 【蓝桥杯Java_C组·从零开始卷】第六节(二)、蓝桥杯常用数学公式

    目录 1.欧几里得定理 2.最大公约数 3.最小公倍数 4.海伦公式(求三角形面积) 5.排序公式 1.欧几里得定理 package Action;public class demo {/** 求最大 ...

  7. 【蓝桥杯Java_C组·从零开始卷】第六节(一)、Java常用数学函数

    目录 1.Math.sqrt() : 计算平方根 2.Math.cbrt() : 计算立方根 3.Math.pow(a, b) : 计算a的b次方 4.Math.max( , ) :计算最大值 5.M ...

  8. 【蓝桥杯Java_C组·从零开始卷】第五节(二)、BigDecimal的使用

    不限制长度的浮点数计算[BigDecimal] 目录 BigDecimal四则运算与取模运算 RoundingMode枚举介绍 RoundingMode舍入模式 UP CEILING FLOOR HA ...

  9. 【蓝桥杯Java_C组·从零开始卷】第五节(一)、BigInteger的使用

    不限制计算长度的整数运算[BigInteger] 目录 BigInteger四则运算 累加值:(从1++++到无限大) 测试数据: 结果: BigInteger取模运算 外星日历 BigInteger ...

最新文章

  1. 双十二爬虫顶流崔庆才老师来图灵直播啦!快来围观啊!!!
  2. Java 随笔——7
  3. 通过零长度的数组获取结构体大小
  4. Android 本地tomcat服务器接收处理手机上传的数据之案例演示
  5. python中re_Python中re(正则表达式)模块学习
  6. 001-pro ant design 升级2.0后变更
  7. DELPHI串口通讯编程
  8. hive 2.1.1 mysql_Hive2.1.1集群搭建
  9. Google浏览器代理设置
  10. 项目管理(七)- 项目利益相关者责任
  11. Gram matrix(格拉姆矩阵)
  12. JavaMail入门第五篇 解析邮件
  13. IIC协议简介—学习笔记
  14. 【Java对象转换】002- Java 对象与 Map 互转
  15. upnp+捕捉摄相头客户端程序
  16. 从根本上降低采购成本,不割韭菜~
  17. 几种常见的开发语言对比
  18. IntelliJ IDEA Remote Development 使用体验
  19. Ubuntu下快捷键操作
  20. MYSQL UDF提权

热门文章

  1. ipython源代码怎么打开_CentOS 6.4 中IPython如何启动Qt控制台和NoteBook?
  2. windows2008文件服务器端口,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...
  3. loginform登录表单 vs_【VSRC唯科普】穿越网页表单与登录窗口的采集(第9/14篇)...
  4. 计算机创建快捷方式w10,win10无法创建快捷方式,win10发送快捷方式磁盘满了
  5. lua脚本在redis集群中执行报错--Lua script attempted to access a non local key in a cluster node...
  6. mysql单表备份语句 +多表
  7. ceph osd跟cpu进行绑定
  8. 2017广西邀请赛重现赛
  9. Python之路_Day13
  10. linux 防火墙配置与REJECT导致没有生效问题