在 for 循环的增量语句而不是 for 循环的主体中递增阶乘是一种好习惯吗?

Is it good practice to increment a factorial in a for loop's increment statement rather than the body of the for loop?

我想知道在 for 循环而不是 for 循环的主体中递增阶乘是否是好的做法?

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

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

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

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

由于 for 循环中的第三个参数用于递增,以这种方式递增 practice/code 是好是坏?我相信它在可读性方面没有任何权衡+通过保存一些 space 来整理代码,虽然它不会改变程序的结果,但在这个中使用 for 循环是否有任何负面影响方式?

根据我的经验,更常见的是在 for 循环的主体中执行此操作,因为大多数操作都超过 1 行。对于这样的 "easy" 代码,它在可读性方面并没有太大的区别。对你来说唯一重要的是保持一致。

不要将循环 body 移入循环 header。

将循环组件分为循环 body 和循环 header 大大提高了可读性。

您的读者只需快速浏览一下您的第二个代码片段,就能从循环的控制(其他所有内容)中分辨出循环的 "payload"(即 Factorial *= Count)。您的第一个代码片段会让您的读者挠头几秒钟,然后他们才意识到 (1) 在 for 循环的末尾有一个分号,并且 (2) 循环的有效负载在header.

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