为什么不在C中使用FIZZBUZZ的while循环?

时间:2018-06-12 19:30:20

标签: c fizzbuzz

仅在C中编码了大约一个月,但想知道为什么while循环不经常用于FIZZBUZZ。它不是那么干净或其他原因吗?这就是我想出的:

int main()
{
    int num=1;
    while(num<=100)
    {
        if (num%3==0 && num%5==0)
        {
            printf("FIZZBUZZ!!!\n");
        }
        else if (num%3==0)
        {
            printf("FIZZ!!!\n");
        }
        else if (num%5==0)
        {
            printf("BUZZ!!!\n");
        }
        else
        {
            printf("%d\n", num);
        }
        num++;
    }

    return 0;

}

1 个答案:

答案 0 :(得分:1)

您的循环可以整齐地折叠成for循环:

for(int num = 1; num <= 100; ++num)

这里有两个好处:

  • num的范围在循环内部,当它出现在while之后的任何范围内。将变量限制在最小可能范围内是一个很好的经验法则,因为它可以最大限度地减少在任何给定点上要考虑的变量数量。

  • 程序运行的范围现在汇总在一个地方:您可以在for内看到界限(1到100)和步骤(1)。在读取循环体之前,这种范围非常均衡,可以快速读取和记忆。例如,如果您现在只想检查奇数,那么通过阅读num += 2标题中的for可以立即清楚,而不是在循环体的最末端绊倒它。 / p>