日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

磊哥工作十几年了,竟没有用过do-while!(文末送书)

發(fā)布時(shí)間:2025/3/11 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 磊哥工作十几年了,竟没有用过do-while!(文末送书) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在看 Java 的基礎(chǔ)知識,其中有部分是關(guān)于循環(huán)的,在 Java 中,循環(huán)的語法總共分為 3 種:for、 while、 do-while,如下圖所示:


但我驚奇的發(fā)現(xiàn),在之前的職業(yè)生涯中(11 年),竟從未用過 do-while(尷尬),于是問了群里的小伙伴,發(fā)現(xiàn)也是鮮有人用。


do-while 語法分析

我們先來了解一下 do-while 的語法:

do?{//?statements }?while?(expression);

注意:最后一個(gè)分號不能省略,否則會(huì)提示編譯出錯(cuò)。

它的執(zhí)行流程如下圖所示:

那它究竟在什么地方用呢?

do-while 使用場景

在我多次的搜索和請教下,終于找到了兩個(gè)相對滿意的使用場景,接下來一起來看。

使用場景一:搶票

對于搶票業(yè)務(wù)來說,無論三七二十一,先搶了再說,然后在判斷是否搶票成功,如果搶票成功則退出循環(huán),否則繼續(xù)執(zhí)行搶票,實(shí)現(xiàn)的偽代碼如下所示:

do?{//?搶票代碼... }?while?(沒搶到票);

思路提供者:賈鯤

使用場景二:進(jìn)制轉(zhuǎn)換

經(jīng)過大量搜索發(fā)現(xiàn),在 JDK 的源碼中,也存在少量使用 do-while?的場景,比如 Integer 中進(jìn)制轉(zhuǎn)換,相關(guān)源碼如下:

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; }

比如十進(jìn)制轉(zhuǎn)二進(jìn)制就會(huì)執(zhí)行此方法,在進(jìn)制轉(zhuǎn)換的業(yè)務(wù)中,無論任何情況,一定會(huì)至少執(zhí)行一次進(jìn)制轉(zhuǎn)換的,因此這種業(yè)務(wù)場景就非常適合 do-while。

總結(jié)

孔子說:溫故而知新。當(dāng)我們學(xué)完很多知識之后,回過頭來再琢磨這些知識,發(fā)現(xiàn)很有趣,這就是知識的一大樂趣吧。本文我們介紹了兩種 do-while 的使用場景,搶票和進(jìn)制轉(zhuǎn)換,你還知道哪些 do-while 的使用場景嗎?歡迎評論區(qū)告訴我~

文末福利:送書

最后送兩本朋友新出的書,作者親筆簽名版哦,包郵到家

第一本:《Web全棧項(xiàng)目開發(fā)入門與實(shí)戰(zhàn)》

本書是手把手地教開發(fā)者如何開發(fā)一套全棧的 WEB 項(xiàng)目,項(xiàng)目的內(nèi)容是一個(gè)類似閑魚的二手交易平臺,其中包含前端技術(shù)(主要使用 React 框架)和后端技術(shù)(主要使用Spring Boot 框架)。

第二本:《Spring Boot技術(shù)內(nèi)幕:架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理》

關(guān)注此公眾號,發(fā)送“送書”參與抽獎(jiǎng)活動(dòng)哦~

往期推薦

調(diào)研了100+開源博客,發(fā)現(xiàn)這5個(gè)最好用!


多圖證明,Java到底是值傳遞還是引用傳遞?


阿里為什么推薦使用LongAdder,而不是volatile?

關(guān)注下方二維碼,收獲更多干貨!

總結(jié)

以上是生活随笔為你收集整理的磊哥工作十几年了,竟没有用过do-while!(文末送书)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。