喜欢的可以收藏转发加关注
对于较老的标准,这三者可以做等价代换。但是实际上,他们还可以做一些很geek的事,可能有点跑题就附在下面。
先讨论他们如何等价
do-while -> while
do{ do_something(); }while(condition);
可以转化为
do_something(); while(condition){ do_something(); }
while -> do-while
while(condition){ do_something(); }
可以转化为
if(condition){ do{ do_something(); }while(condition); }
for -> while
for(init-expr;condition;update-expr){ do_something(); }
可以转化为
init-expr; while(condition){ do_something(); update-expr; }
--------补--------
后来想到,for循环内部使用continue的时候,仍然是会执行update-expr的,所以如果考虑上这个,可能要这么写
if(condition){ do_something(); while(update-expr,condition){ do_something(); } }
-------------------
while -> for 过于简单,略去
本身,这三种语法就是等价、可互相转换的。用的时候大多只是考虑它们的可读性罢了</