C++中If...elseif...else与If...continue等价写法的选型偏好咨询
C++中If...elseif...else与If...continue等价写法的选型偏好咨询
我在学习C++的时候,发现下面两段代码的运行逻辑完全一致,但写法风格差别很大,想请教下大家有没有公认的选型偏好?
写法一:If...elseif...else 嵌套决策风格
for (auto& item : items) { if (!item.is_valid) { /* skip */ } else if (item.cnt == 0) { /* skip */ } else if (item.freq < min) { /* skip */ } else { Process(item); } }
写法二:If...continue 过滤流程风格
for (auto& item : items) { if (!item.is_valid) { continue; } if (item.cnt == 0) { continue; } if (item.freq < min) { continue; } Process(item); }
我自己读下来的感受是:第一种写法更像是嵌套式的决策判断,一步步排除不符合的情况;第二种写法则更像递进式的过滤流程,把不符合条件的直接筛出去,剩下的再执行处理逻辑。
想问问大家,这两种写法有没有什么公认的偏好或者行业惯例呀?
备注:内容来源于stack exchange,提问作者bluesquid29
相关产品推荐
相关产品推荐

