-1
int main()
{
    int cstats, choice;
    int rhp, hp, i, init, atk, def, matk, mdef, dmg, mdmg, agi, magi;
    cout << "Please choose your specialty: ";
    cout << "[1] Offense [2] Magic [3] Defense [4] Speed";
    switch(cstats)
    case 1:
        atk = 15;
        def = 5;
        agi = 5;
        break;
}

これが私の最初のセリフです。コードでわかるように。switch ステートメントを使用して別の整数を使用したいのですが、常に break; を置くと、次のケースに進みます。私はいつも問題に遭遇します。スイッチを使用して整数を選択することは可能ですか? それとも、私はそれを間違っていますか?テキストベースのゲームを作っています。

4

3 に答える 3

1
int main()
{
    int cstats, choice;
    int rhp, hp, i, init, atk, def, matk, mdef, dmg, mdmg, agi, magi;
    cout << "Please choose your specialty: ";
    cout << "[1] Offense [2] Magic [3] Defense [4] Speed";

    cin >> cstats;
    switch(cstats)
    {
        case 1:
            atk = 15;
            def = 5;
            agi = 5;
            break;
        case 2:
                   //other code
            break;
        ....
        default:
          //Here you can prompt to select 1,2,3 or 4
    }
}
于 2013-10-22T15:06:32.353 に答える
1

switch ステートメントに中括弧がないことは別として。cstats未定義であり、何らかの方法で定義する前にそれを読み取ることは未定義の動作です。

コマンドラインから整数を取得する方法については、http ://www.cplusplus.com/forum/articles/6046/ を参照してください。

余談ですが、常に変数を定義する必要があります。できれば初期化時に、はるかに安全で、何千行ものコードがあり、何が起こっているのかがまったく意味をなさない場合にデバッグするのがはるかに簡単です。未定義の動作。

于 2013-10-22T15:02:57.963 に答える