0

重複の可能性:
switchステートメントで値の範囲を選択するにはどうすればよいですか?
c++は定数式に表示できません|

私がやろうとしているのは、乱数を生成し、その数の値に応じて、「Common」、「Rare」、または「VeryRare」を書き出すことです。誰かが私を助けることができますか?

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    int a;
    srand(time(0));
    a = 1 + (rand()%10);

    switch (a)
    {
        case (a >= 0 && a <= 5):
        cout << "Common";
            break;

        case (a >= 6 && a <= 8):
        cout << "Rare";
            break;

        case (a >= 9 && a <= 10):
        cout << "Very rare";
            break;

        default:
            break;
    }

    return 0;
}
4

2 に答える 2

4

switchケースで比較演算子を使用することはできません。これを試して:

 switch (a)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        cout << "Common";
            break;

        case 6:
        case 7:
        case 8:
        cout << "Rare";
            break;

        case 9:
        case 10:
        cout << "Very rare";
            break;

        default:
            break;
    }
于 2012-12-04T04:46:24.800 に答える
2

範囲を確認したい場合は、すべての可能な値のリストを使用しないように、ifステートメントを使用することをお勧めします。

if (a >= 0 && a <= 5)
    cout << "Common";
else if (a >= 6 && a <= 8)
    cout << "Rare";
else if (a >= 9 && a <= 10)
    cout << "Very rare";
于 2012-12-04T04:58:41.927 に答える