Почему бы не использовать цикл while для FIZZBUZZ в C?
Кодировал на 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 ответ
Ваш цикл может быть аккуратно сложен в for
цикл:
for(int num = 1; num <= 100; ++num)
Здесь есть два преимущества:
num
находится в пределах цикла, когда до того, как оно истекаетwhile
, Ограничение переменных до минимально возможного объема является хорошим эмпирическим правилом, поскольку оно сводит к минимуму количество переменных, о которых нужно думать в любой заданной точке.Диапазон, в котором будет работать ваша программа, теперь суммируется в одном месте: вы можете видеть границы (от 1 до 100) и шаг (1) внутри
for
, Такого рода диапазоны довольно хорошо сбалансированы для быстрого чтения и запоминания перед чтением тела цикла. Например, если вы теперь хотите проверять только нечетные числа, было бы сразу ясно прочитатьnum += 2
вfor
заголовок, а не спотыкаться на нем в самом конце тела цикла.