Dominik N
Dominik N

Reputation: 3

C# Quiz randomly picking questions & cycling until finished

I have to create a Quiz which prints questions in a random order. I have written out all the questions in if statements, and if 10 questions have been answered I want all the questions to be displayed with a proper answer to them and user input answer to compare. I do not know yet how to make it so the code goes to the next if statement after 1 is finished.

How do I finish 1 if statement (question) and the random number generator points to another if and so on.

static void Main(string[] args)
    {
        string answer1;
        string answer2;
        string answer3;
        string answer4;
        string answer5;
        string answer6;
        string answer7;
        string answer8;
        string answer9;
        string answer10;
        int answeredQs = 0;

        Random rnd = new Random();
        int questionNum = rnd.Next(1,10);
        Console.WriteLine("Question Number: " + questionNum);

            if (questionNum == 1)
            {
                Console.WriteLine("What is a CPU?");
                answer1 = Console.ReadLine();
                answeredQs = +1;
            }

            if (questionNum == 2)
            {
                Console.WriteLine("What does 'RAM' stand for?");
                answer2 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 3)
            {
                Console.WriteLine("What is RAM?");
                answer3 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 4)
            {
                Console.WriteLine("How do you measure how fast a processor is?");
                answer4 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 5)
            {
                Console.WriteLine("What is an ALU & what does it do?");
                answer5 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 6)
            {
                Console.WriteLine("What is a register?");
                answer6 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 7)
            {
                Console.WriteLine("What is EEPROM?");
                answer7 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 8)
            {
                Console.WriteLine("What is the difference between SRAM and DRAM?");
                answer8 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 9)
            {
                Console.WriteLine("What is ROM?");
                answer9 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (questionNum == 10)
            {
                Console.WriteLine("What does the Control Unit do?");
                answer10 = Console.ReadLine();
                answeredQs = answeredQs + 1;
            }

            if (answeredQs == 10)
            {
                Console.WriteLine("asdasdasd");
            }

Upvotes: 0

Views: 367

Answers (1)

Lucas Delobelle
Lucas Delobelle

Reputation: 434

You could put your if statements in a loop (for, while...)

Also, your code could be more readable by putting the questions in an ArrayList for example (or any other "data-storing" structure, an simple array for instance).

Then, you could play on the index of the questions which are in this structure, always in a loop.

Hope this helps

Upvotes: 2

Related Questions