Search code examples
c++for-loopswitch-statementfizzbuzz

c++ fizzbuzz switch statement?


I'm trying to see if I can make a fizzbuzz c++ switch statement. I'm getting an error saying i is not usable in a const expression. Does that mean I can't make this thing work? Or is there a work around? Here's my code.

#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;
        }
    }
}

Solution

  • If you really want to use switch/case then you could do it like this:

    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;;
    }