仅在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;
}
答案 0 :(得分:1)
您的循环可以整齐地折叠成for
循环:
for(int num = 1; num <= 100; ++num)
这里有两个好处:
num
的范围在循环内部,当它出现在while
之后的任何范围内。将变量限制在最小可能范围内是一个很好的经验法则,因为它可以最大限度地减少在任何给定点上要考虑的变量数量。
程序运行的范围现在汇总在一个地方:您可以在for
内看到界限(1到100)和步骤(1)。在读取循环体之前,这种范围非常均衡,可以快速读取和记忆。例如,如果您现在只想检查奇数,那么通过阅读num += 2
标题中的for
可以立即清楚,而不是在循环体的最末端绊倒它。 / p>