Пробовал писать fizzbuzz на C ++, но перед выводом на консоль списка целых чисел он печатает каждую строку «Fizzbuzz», «fizz», «buzz»
Образец вывода:
FizzBuzz шипение жужжание 1 2 шипение 4
Код:
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int i;
for (i = 0; i <=100; i++) {
if((i % 15) == 0)
cout << "Fizzbuzz" << endl;
if((i % 3) == 0)
cout << "Fizz"<< endl;
if((i % 5) == 0)
cout << "Buzz" << endl;
else
cout << i <<endl;
}}
При проверке нескольких условий, для которых требуется только одна ветвь, необходимо использовать else if
после первого if
, Затем первый Филиал, для которого выполняется условие, будет принято:
if((i % 15) == 0)
cout << "Fizzbuzz" << endl;
else if((i % 3) == 0)
cout << "Fizz"<< endl;
else if((i % 5) == 0)
cout << "Buzz" << endl;
else
cout << i <<endl;
В вашем коде проверяется каждое условие и берется каждая ветвь, для которой выполняется условие. else
регистр в вашем коде будет взят, если прошлой if
не был взят, т. е. принадлежит к последнему if
только. Когда используешь else if
, else
ветвь берется если никто условия были выполнены.