gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:47:59 26 4
gpt4 key购买 nike

只用 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;

}

最佳答案

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

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

这里有两个优点:

  • num 的作用域位于循环内部,之前它渗透到 while 后面的任何作用域中。将变量限制在尽可能小的范围内是一个很好的经验法则,因为它可以最大限度地减少在任何给定点需要考虑的变量数量。

  • 程序运行的范围现在汇总在一个位置:您可以在 for 中看到边界(1 到 100)和步骤 (1)。这种范围非常平衡,可以在阅读循环体之前快速阅读和内存。例如,如果您现在只想检查奇数,则可以通过读取 for header 中的 num += 2 立即清楚,而不是在循环体的最末端。

关于c - 为什么不在 C 中为 FIZZBUZZ 使用 while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50824517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com