do...while 语句 ,做了一年开发,从来没用到过,是不是我太菜了。

2019-03-27 13:19:33 +08:00
 k8ser
8698 次点击
所在节点    程序员
68 条回复
avenger
2019-03-27 16:39:18 +08:00
goto 用过吗?;-)
uleh
2019-03-27 17:09:35 +08:00
说明你不是一个 C 程序员 :doge:
0x11901
2019-03-27 17:19:20 +08:00
虽说这么想确实有点菜,不过讲道理的话还是要看看你用的是什么语言,如果需要编译开编译器优化的话,三种常见的循环结构最终机器码应该是一致的,不一致请去砍写编译器的人🔪
0x11901
2019-03-27 17:20:10 +08:00
@0x11901 所以只是一个品味问题。
bravecarrot
2019-03-27 17:20:56 +08:00
只用过 for 和 while
工作一年了 do while 从没用过
cpp 程序员
zwh2698
2019-03-27 17:29:06 +08:00
可以取消 goto 语句,优化流程。
RyougiShiki
2019-03-27 17:31:52 +08:00
所以 python 里没有它
iffi
2019-03-27 17:34:28 +08:00
可以用来重试,比较适合语意,即至少执行 1 次。do{请求}while(在重试次数限制范围内 && 第一次请求失败)
inoki
2019-03-27 17:48:42 +08:00
@watzds PHP src 里 zend engine 的 macro ?
Akiyu
2019-03-27 17:54:15 +08:00
我在真实环境下用到的 do{}while(false) 是为了那个 break
在某一条件不成立的时候可以立马 break 出去
Joyboo
2019-03-27 18:03:40 +08:00
golang 一招 for 走天下
YuTengjing
2019-03-27 18:27:39 +08:00
do while 场景有限,不过一年开发,如果是业务开发,讲道理是应该会碰到过
xiangyuecn
2019-03-27 18:52:40 +08:00
@watzds #7 do {…} while(false) 用的少,因为多了一个 do,记不住这么多语法。。。不过 while(true){... break}用的炒鸡多。
herozzm
2019-03-27 18:54:13 +08:00
并不是,go 直接没有 do while,说明这个没有多少存在感
Nicoco
2019-03-27 18:56:42 +08:00
表示主力用 for,用 do { } while () 较少
dremy
2019-03-27 18:57:21 +08:00
do … where 用来做重试逻辑很方便啊,where 里面做是否需要重试的判断就好了
meiyoumingzi6
2019-03-27 20:13:27 +08:00
没用过

可能因为我是个 python 猿
bp0
2019-03-27 23:07:19 +08:00
有些公司的编程规范要求函数不能多个 return,这时可以用 do{}while(0)加 break 模拟。

另外一种情况就是正宗的 do while 用法,确实某些情况下需要先执行一次,然后再进行判断。
yim7
2019-03-28 09:35:35 +08:00
python 太菜了,没见过 do while
qsbaq
2019-03-28 10:35:53 +08:00
php 中从没用过 do while

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/549086

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX