最近在weibo看到一篇c++利用do{}while(0)来做流程控制,减少goto语句的重复代码量,感觉想法很不错,这里我们假设一个场景,让js也能利用一把do{}while(0)的妙处。
设计场景:
流程可能出现condtion4种情况,当出现condition1-3时,期望执行dosomething1,当出现condition4时,期望执行dosomething2,否则默认执行dosomething3,
同时我们要记录每个condition情况的日志,do_log
我们可能写出如下伪代码:
1 | function if_else(condition){ |
这样我们就利用if和else完成了整个流程的代码,接下来我们利用do{}while(0) 来重写这个流程控制:
1 | function do_while(condition){ |
这样我们就少写了几遍do_something_1这段代码了,感觉是不是很好?