所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

C语言中的循环嵌套循环看不懂啊?

发布时间:2020-04-12 08:39:59

资讯分类:嵌套循环  c语言  看不懂  循环  外层  返回  循环
C语言中的循环嵌套循环看不懂啊?

1.确定返回点

2.提炼内循环体:Extract Method

3.Replace goto with return

举个例子,再复杂化一下,在外层循环加一点其他操作,不然你的内部用break其实就可以直接让外层continue了。foo封装j的循环,遇到特殊条件返回true,否则返回false。

for i in (0,3){

if(foo(i))continue;

//如果用goto,这里是正常出口

do other;

//如果用goto,这里会有tag来跳过do other

这样的好处在于

1.封装了一层循环成一次函数调用,代码结构更清晰,也利于下一步重构。

2.return严格控制了返回点,避免了滥用goto的情况。(看上面的代码你会发现用goto程序流有两个出口)

3.return携带的返回值本身赋予了抽象含义(即内部要求外部进行continue)。

4.这个continue也成为外层循环的工作了,不会出现之前内层直接调用外层的情况。换而言之,内层不需要知道外层的存在,只需要知道自己什么时候返回什么,而对于返回值的逻辑处理则仅由外层进行,也就减少了耦合度。


题外话:

说goto不感觉题主本身的continue就是goto么…只是在重复吧。

留言与评论(共有 0 条评论)
   
验证码:
Top