0

これは私がこれまでに持っているものです。私の問題は、正解または不正解のいずれかを入力しても、どのケースも応答しないことです。ここからどこへ行けばいいのかよくわかりません。プログラムは、乗算される 2 つの乱数に答えるように求めます。すると、8 つの応答のうちの 1 つが表示されます。

        int result = 0;
        int caseSwitch = 0;

        string question = DoMultiplication(out result);
        Console.WriteLine(question);
        int answer = Convert.ToInt32(Console.ReadLine());

        if (answer == result)
        {
            switch (caseSwitch)
            {
                case 1:
                    Console.WriteLine("Very Good");
                    break;

                case 2:
                    Console.WriteLine("Excellent");
                    break;

                case 3:
                    Console.WriteLine("Nice Work");
                    break;

                case 4:
                    Console.WriteLine("Keep up the good work!");
                    break;

            }

        }
        else
        {
            switch (caseSwitch)
            {


                case 1:
                    Console.WriteLine("No, Please Try Again.");
                    break;

                case 2:
                    Console.WriteLine("Wrong, Try Once More");
                    break;

                case 3:
                    Console.WriteLine("Don't Give Up!");
                    break;

                case 4:
                    Console.WriteLine("No, Keep Trying!");
                    break;
4

3 に答える 3

2

caseSwitch は常に 0 であるため、スイッチはコンソールに何も書き込まずに常に失敗します。

ランダムな応答が必要な場合は、次のようにすることができます。

    int result = 0;
    int caseSwitch = new Random().Next(1, 4);

    string question = DoMultiplication(out result);
    Console.WriteLine(question);
    int answer = Convert.ToInt32(Console.ReadLine());

    if (answer == result)
    {
        switch (caseSwitch)
        {
            case 1:
                Console.WriteLine("Very Good");
                break;

            case 2:
                Console.WriteLine("Excellent");
                break;

            case 3:
                Console.WriteLine("Nice Work");
                break;

            case 4:
                Console.WriteLine("Keep up the good work!");
                break;

        }

    }
    else
    {
        switch (caseSwitch)
        {


            case 1:
                Console.WriteLine("No, Please Try Again.");
                break;

            case 2:
                Console.WriteLine("Wrong, Try Once More");
                break;

            case 3:
                Console.WriteLine("Don't Give Up!");
                break;

            case 4:
                Console.WriteLine("No, Keep Trying!");
                break;
于 2013-10-20T16:40:59.993 に答える
1

CaseSwitch は常に = 0 です。値を割り当てるか、スイッチにデフォルト ケースを追加する必要があります。

于 2013-10-20T16:37:35.437 に答える
0

あなたはあなたint caseSwitch = 0;を持っていますが、コードでそれを1〜4のいずれかに変更しているとは思いません。caseSwitch が変更されていない場合、どうなるでしょうか...

于 2013-10-20T16:40:48.383 に答える