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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

最近在看 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 的使用場景嗎?歡迎評論區告訴我~

文末福利:送書

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

第一本:《Web全棧項目開發入門與實戰》

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

第二本:《Spring Boot技術內幕:架構設計與實現原理》

關注此公眾號,發送“送書”參與抽獎活動哦~

往期推薦

調研了100+開源博客,發現這5個最好用!


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


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

關注下方二維碼,收獲更多干貨!

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。