Я бы использовал else-ifs
и сделал бы нас из того факта, что
(i % 5 == 0 && i % 3 == 0) <=> (i % 15 == 0)
:
for (i = 1; i <= file_int; i++){
if (i % 15 == 0)
printf("Hop \n");
else if (i % 3 == 0)
printf("Hoppity \n");
else if (i % 5 == 0)
printf("Hophop \n");
}
Конечно, вы также можете уйти, не используя никаких управляющих структур, кроме for
-loop:
const char* values[15] = {"Hop \n", "", "", "Hoppity \n", "",
"Hophop \n", "Hoppity \n", "", "", "Hoppity \n",
"Hophop \n", "", "Hoppity \n", "", ""};
for (int i = 1; i <= 100; i++)
printf(values[i % 15]);
Это решение немного безумно для этого примера, но оно показывает, как вы можете делать вещи по-другому (и оно не настолько притягательно при написании кода, когда у вас никогда не будет больше определенного количества путей ветвления в одной функции (чрезмерное усердие при кодировании) конвенции ...)).