在for循环的增量语句中增加阶乘而不是for循环的主体是一种好的做法吗?

时间:2017-10-21 20:09:06

标签: c for-loop coding-style factorial readability

我想知道在for循环的增量语句中增加一个阶乘而不是for循环的主体是否是一个好的做法?

下面显示了在增量语句中乘法递增的因子:

for(Count = 1; Count <= 10; Factorial *= Count, Count++);

另一种方法是在for循环体内递增阶乘:

for(Count = 1; Count <= 10; Count++)
{
    Factorial *= Count;
}

由于for循环中的第三个参数用于增量,以这种方式递增是一种好的还是坏的练习/代码风格?我相信它没有任何可读性的折衷+通过节省一些空间来代替代码,虽然它不会改变程序的结果,但是以这种方式使用for循环是否有任何负面影响?

2 个答案:

答案 0 :(得分:4)

不要将循环体移动到循环标题中。

将循环组件分离为循环体和循环标题极大地提高了可读性。

您的读者将能够通过快速浏览您的第二个代码片段,从循环控件(其他所有内容)中分辨循环的“有效负载”(即Factorial *= Count)。你的第一个代码片段会让你的读者在他们意识到(1)在for循环的末尾有一个分号,以及(2)循环的有效负载在报头中。

编译器可能在两种情况下都可能生成相同的代码这一事实不应该是一个因素。

答案 1 :(得分:2)

由于我的经验,它在for循环体中更常见,因为大多数动作都超过1行。对于这种“简单”的代码,它在可读性方面没有太大的区别。对您而言唯一重要的是保持一致。