1
Kaiv2 2019 年 3 月 27 日 via Android
这。。。怎么联想的。不自信?
|
2
whoami9894 2019 年 3 月 27 日 via Android
用哪种循环结构还不是看个人习惯,而且 Go 里只有个 for
|
3
baronOvO 2019 年 3 月 27 日 via Android
有什么必然关系吗?
适用场景的问题吧 |
4
fngtz 2019 年 3 月 27 日 via iPhone 没用过这个语句不能说明你菜。
但是你这样想,大概率还是能说明你菜的。 |
5
terence4444 2019 年 3 月 27 日
我会尽量少用这种不确定循环次数的语句,用到就要非常小心退出条件。
|
6
k8ser OP 谢谢大家,发帖前没有谨慎思考。本意是想知道大家有没有用到。挺常见但是自己几乎没有用到。
|
7
watzds 2019 年 3 月 27 日
do {…} while(false) 见过吗
|
8
th1nk 2019 年 3 月 27 日
laravel 框架从来不用 else,牛逼不牛逼。
|
10
charliecheng 2019 年 3 月 27 日
我一般都用 try{} catch{}
|
11
sugars PRO 不要为了用而用
|
12
Raymon111111 2019 年 3 月 27 日
4L 说的对
|
13
Variazioni 2019 年 3 月 27 日
三年了。。表示也没用过。。甚至有时候需要先执行过程也想不起 do while。。一直都是用 for。。线程里的永真循环就用 while。。
|
14
k9982874 2019 年 3 月 27 日
do..while 在某些情况下函数内代码分块,划分变量作用域,替代 goto 还是很好用的
|
15
binux 2019 年 3 月 27 日 via Android
可以用来优化代码结构,但是不必要。
|
16
arthas2234 2019 年 3 月 27 日
Java。。。一直用 foreach
|
17
Febers 2019 年 3 月 27 日 via iPhone
用过一次,Java 的 readLine 判空读取文件,用 Kotlin 的时候只能写成 do...while
|
19
zhuangzhuang1988 2019 年 3 月 27 日
除了 c /c ++ 里 宏用过 别的地方从来没用过
|
20
Mac 2019 年 3 月 27 日 via Android
还有人用几百万条 if then 开发游戏呢,能跑就行
|
21
duql 2019 年 3 月 27 日
很不喜欢在 do..while 里 break 来代替 goto 那种代码,增加了一层缩进,也没比 goto 清晰多少
|
22
pkookp8 2019 年 3 月 27 日 via Android 真想打死说 goto 不好的人,代码结构是看写法,不是看关键字的
逻辑混乱不用 goto 也混乱 逻辑清晰 setjump 都能看的明明白白 |
23
darknoll 2019 年 3 月 27 日
do...while 不是用来循环的,用来写宏函数的
|
24
mortonnex 2019 年 3 月 27 日
do {}
while(false) 这种写法爽的一匹 |
25
dfourc 2019 年 3 月 27 日
一直用 for 从来没用过 do...while
|
26
des 2019 年 3 月 27 日 via Android
do {} while(false) 加 break,只用过这种
|
27
notreami 2019 年 3 月 27 日
golang 码农表示,完全不知道还有这个玩法。。
|
28
SuperMild 2019 年 3 月 27 日
其实基本上都用 for,连 while 都很少用到( C 语言除外)。
|
29
LiHaiWordGe 2019 年 3 月 27 日
do {}
while(false) |
30
shangfabao 2019 年 3 月 27 日
那你单用过 while 么?
|
31
AV1 2019 年 3 月 27 日
其他语言不做评论,但是如果在 JS 里用 do{break}while(false)的话,那就真的太菜了,因为 JS 有更优雅的 labeled block 用法。
|
32
k8ser OP @shangfabao 记得用过,哈哈
|
33
marsgt 2019 年 3 月 27 日
是。
下一个问题。😉 |
34
marsgt 2019 年 3 月 27 日
其实用不用无所谓吧,for 已经基本能满足 90%的场景了。前两天学 c 才知道,Go 语言里连 while 关键字都省了,直接抓 for 来兼职(不分段形式就是 while )……
|
35
jinksw 2019 年 3 月 27 日
C 语言会把这个用在定义宏上面
因为 用别的实现不了 🤔具体我忘了,不过我在书上看到过,在哪看到的忘了 |
36
R4mble 2019 年 3 月 27 日
我都不怎么用 while
|
37
attackonFourier 2019 年 3 月 27 日
js 循环都可以拿掉 用递归来代替
|
38
cortexm3 2019 年 3 月 27 日
do {} while(0)
|
39
firebroo 2019 年 3 月 27 日
c/c++的宏吧。。
|
40
qianji201712 2019 年 3 月 27 日
for foreach while 这三个就够了,do while 个人感觉使用怪怪的,主次颠倒了
|
41
avenger 2019 年 3 月 27 日 via iPhone
goto 用过吗?;-)
|
42
uleh 2019 年 3 月 27 日
说明你不是一个 C 程序员 :doge:
|
43
0x11901 2019 年 3 月 27 日
虽说这么想确实有点菜,不过讲道理的话还是要看看你用的是什么语言,如果需要编译开编译器优化的话,三种常见的循环结构最终机器码应该是一致的,不一致请去砍写编译器的人🔪
|
45
bravecarrot 2019 年 3 月 27 日 via iPhone
只用过 for 和 while
工作一年了 do while 从没用过 cpp 程序员 |
46
zwh2698 2019 年 3 月 27 日 via Android
可以取消 goto 语句,优化流程。
|
47
RyougiShiki 2019 年 3 月 27 日
所以 python 里没有它
|
48
iffi 2019 年 3 月 27 日
可以用来重试,比较适合语意,即至少执行 1 次。do{请求}while(在重试次数限制范围内 && 第一次请求失败)
|
50
Akiyu 2019 年 3 月 27 日
我在真实环境下用到的 do{}while(false) 是为了那个 break
在某一条件不成立的时候可以立马 break 出去 |
51
Joyboo 2019 年 3 月 27 日
golang 一招 for 走天下
|
52
YuTengjing 2019 年 3 月 27 日 via Android
do while 场景有限,不过一年开发,如果是业务开发,讲道理是应该会碰到过
|
53
xiangyuecn 2019 年 3 月 27 日
@watzds #7 do {…} while(false) 用的少,因为多了一个 do,记不住这么多语法。。。不过 while(true){... break}用的炒鸡多。
|
54
herozzm 2019 年 3 月 27 日
并不是,go 直接没有 do while,说明这个没有多少存在感
|
55
Nicoco 2019 年 3 月 27 日
表示主力用 for,用 do { } while () 较少
|
56
dremy 2019 年 3 月 27 日 via iPhone
do … where 用来做重试逻辑很方便啊,where 里面做是否需要重试的判断就好了
|
57
meiyoumingzi6 2019 年 3 月 27 日 via Android
没用过
可能因为我是个 python 猿 |
58
bp0 2019 年 3 月 27 日
有些公司的编程规范要求函数不能多个 return,这时可以用 do{}while(0)加 break 模拟。
另外一种情况就是正宗的 do while 用法,确实某些情况下需要先执行一次,然后再进行判断。 |
59
yim7 2019 年 3 月 28 日
python 太菜了,没见过 do while
|
60
qsbaq 2019 年 3 月 28 日
php 中从没用过 do while
|
61
freedomshi 2019 年 3 月 28 日
是
|
62
chtcrack 2019 年 3 月 28 日
do while 和 for 差别很小的..for 写起来会比 do while 简单一些..看个人习惯吧.举例 int i=0;
while(i<10) { i++; } 上面的 while 和下面 for 其实执行的都是一个鸟样. for(int i=0;i<10;i++) { } |
63
jadeity 2019 年 3 月 28 日
这就是个冗余的表达方式,存在但是没必要,所以 golang 只有一个 for (非褒非贬)。
|
64
gamexg 2019 年 3 月 28 日
go 里面只剩下了 for ...
另外 c 里面虽然知道,但是印象真没用过。 |
65
Paual 2019 年 3 月 28 日
do,while {} 可以进行重试机制吧,这个也是看大神的代码的时候看到的
do { //进行相关操作 } while ($this->result() !=0 $count<3) 可以进行重试机制,当函数 result 的结果不为 0,进行 do while 循环中的内容,也就是当函数结果没有执行成功的时候可以进行循环代码中的代码,也即重试机制 |
66
Paual 2019 年 3 月 28 日
代码应该是这个:
$count = 0; do { //进行相关操作 } while ($this->result() !=0 && $count<3) 可以进行重试机制,当函数 result 的结果不为 0,进行 do while 循环中的内容,也就是当函数结果没有执行成功的时候可以进行循环代码中的代码,也即重试机制 |
67
viger 2019 年 3 月 28 日
do{}while(0)用的最多,主要是为了解决多层嵌套判断问题。
当然如果有时候需要先执行一波再来判断的循环也会用到,不过这种场景比较少 |
68
dearmymy 2019 年 3 月 28 日
我就是这么搞的,
int liRet = -1 do { liRet = doSomething() if(liRet !=0) break ..... liRet = 0 }while(false) return liRet |