для цикла — c ++ fizzbuzz оператор переключения?

Я пытаюсь понять, смогу ли я сделать оператор переключения fizzbuzz c ++. Я получаю сообщение об ошибке, в котором говорится, что меня нельзя использовать в выражении const. Значит ли это, что я не могу заставить эту вещь работать? Или есть работа вокруг? Вот мой код

#include <iostream>
using namespace std;

int main() {
for(int = 1; 1 <= 100; i++){
switch(true){

case(i % 3 == 0 & i % 5 == 0):
cout << "fizzbuzz" << endl;
break;

case(i % 3 == 0):
cout << "fizz" << endl;
break;

case(i % 5 == 0):
cout << "fizz" << endl;
break;
default:
cout << i << endl;
}
}
}

-8

Решение

Если вы действительно хотите использовать switch / case, вы можете сделать это так:

switch (i % 15)
{
case 0 : cout << "fizzbuzz\n"; break;

case 5:
case 10: cout << "buzz\n"; break;

case 3:
case 6:
case 9:
case 12: cout << "fizz\n"; break;

default: cout << i << "\n"; break;;
}
5

Другие решения

Как указано в комментариях, несколько раз вы не всегда можете использовать switch() утверждение как if заявление и есть несколько других проблем с вашим кодом. Я не собираюсь давать вам правильный ответ, так как не верю, что это поможет вам больше всего.

Вот некоторые заметки:
1) Вместо переключателя следует использовать if, else if, а также else заявления.
2) В C ++ and выражается как && не &
3) А for цикл объявлен как for(int i = 0; i <= 100; i++)

Вы должны посмотреть / прочитать несколько простых руководств о том, как кодировать C ++, так как важно, чтобы вы понимали эти основы.

0

Есть несколько фундаментальных проблем с тем, как вы используете switch / case.

Ожидаемый способ использовать это, чтобы иметь switch обратиться к переменной или выражению, то case разделы относятся к постоянным значениям.

Вместо этого вы делаете switch(true) который не имеет никакого смысла, даже если он компилируется. Это эквивалентно switch(1), Так что только в этом случае case 1: будет применяться

Вы не можете использовать выражения для case, Это должны быть постоянные целочисленные значения. Так, например, вы можете либо простые целые числа case 0:или также обычно предварительный процессор определяет case FIZZBUZZ:,

0
По вопросам рекламы [email protected]