网站首页 > 精选教程 正文
最近在看 Java 的基础知识,其中有部分是关于循环的,在 Java 中,循环的语法总共分为 3 种: for、 while、 do-while,如下图所示:
但我惊奇的发现,在之前的职业生涯中(11 年),竟从未用过 do-while(尴尬),于是问了群里的小伙伴,发现也是鲜有人用。
do-while 语法分析
我们先来了解一下 do-while 的语法:
do {
// statements
} while (expression);
注意:最后一个冒号不能省略,否则会提示编译出错。
它的执行流程如下图所示:
那它究竟在什么地方用呢?
do-while 使用场景
在我多次的搜索和请教下,终于找到了两个相对满意的使用场景,接下来一起来看。
使用场景一:抢票
对于抢票业务来说,无论三七二十一,先抢了再说,然后在判断是否抢票成功,如果抢票成功则退出循环,否则继续执行抢票,实现的伪代码如下所示:
do {
// 抢票代码...
} while (没抢到票);
思路提供者:贾总
使用场景二:进制转换
经过大量搜索发现,在 JDK 的源码中,也存在少量使用 do-while 的场景,比如 Integer 中进制转换,相关源码如下:
static int formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {
int charPos = len;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[offset + --charPos] = Integer.digits[val & mask];
val >>>= shift;
} while (val != 0 && charPos > 0);
return charPos;
}
比如十进制转二进制就会执行此方法,在进制转换的业务中,无论任何情况,一定会至少执行一次进制转换的,因此这种业务场景就非常适合 do-while。
总结
孔子说:温故而知新。当我们学完很多知识之后,回过头来再琢磨这些知识,发现很有趣,这就是知识的一大乐趣吧。本文我们介绍了两种 do-while 的使用场景,抢票和进制转换,你还知道哪些 do-while 的使用场景吗?欢迎评论区告诉我~
- 上一篇: 垃圾回收日志记录是否会影响应用性能?
- 下一篇: SpringBoot整合RocketMQ入门示例
猜你喜欢
- 2025-05-11 python学习笔记 1.常见的数据类型
- 2025-05-11 快速掌握Kafka系列《三》配置项总结
- 2025-05-11 3.2数据类型和变量赋值(JAVA程序员改行Python当天入门教程)
- 2025-05-11 神奇的字符串常量池
- 2025-05-11 Spring Boot(二十):RedisTemplate的序列化
- 2025-05-11 读Java性能权威指南(第2版)笔记22_ 操作系统工具和Java监控工具
- 2025-05-11 三万字总结最全Java线程池源码面试题
- 2025-05-11 linux 正则表达式(2)-扩展正则表达式
- 2025-05-11 Jenkins环境搭建和部署项目的过程
- 2025-05-11 聊聊C语言-常用运算符
你 发表评论:
欢迎- 06-30【AI绘永昌】风景篇(二)(永昌图文)
- 06-30AI风景建筑图集(ai景观平面图)
- 06-30AI绘制精美绚丽的景色(ai绘制图案)
- 06-30AI风景,不存在的地方又增加了(ai风景插画作品)
- 06-301 分钟解锁!运用 DS + 即梦 + 豆包,轻松打造个性化风景音乐短视频
- 06-30美景欣赏 #AI绘画#(美景图画)
- 06-30AI动漫风景图集1 ~(ai动漫图片)
- 06-30原图壁纸,ai绘画风景(原图壁纸下载)
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)