tags:

views:

127

answers:

5
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace LittleQuizworld_3
{
    class Program
    {
    public string QuestionText; //Actual question text.
    public string[] Choices; //Array of answer from which user can choose.
    public int Answer; //Index of correct answer with Choices.



    static void Main(string[] args)

    {

        int correct = 0;
        int iChoice =0;

        Console.WriteLine("Hello Welcome to Litte Quiz World, We hope you will have fun here");
        Console.WriteLine("Please press enter to continues :) ");
        Console.ReadLine();
        while (iChoice != 4)
        {
        Console.WriteLine("Please select the following");
        Console.WriteLine("1.Play Game");
        Console.WriteLine("2.Future game");
        Console.WriteLine("3.Credits");
        Console.WriteLine("4.Exit");
        Console.ReadLine();
        iChoice = Convert.ToInt32(Console.ReadLine());



          using (StreamReader sr = new StreamReader("./quiz.txt"))
        {



           switch (iChoice)
           {

         case 1:

            while (!sr.EndOfStream)
            {
                Console.Clear();
                for (int i = 0; i < 5; i++)
                {
                    String line = sr.ReadLine();
                    if (i > 0)
                    {
                        if (line.Substring(0, 1) == "#") correct = i;
                        Console.WriteLine("{0}: {1}", i, line);
                    }
                    else
                    {
                        Console.WriteLine(line);
                    }
                }

                for (;;){
                {
                    Console.Write("Select Answer: ");
                    ConsoleKeyInfo cki = Console.ReadKey();
                    if (cki.KeyChar.ToString() == correct.ToString())
                    {
                        Console.WriteLine(" - Correct!");
                        Console.WriteLine("Press any key for next question...");
                        Console.ReadKey();

                    }
                    else
                    {
                        Console.WriteLine(" - Try again!");
                        Console.Clear();
                    }




                    case 2:

                    if (iChoice == 2)
                    {
                        Console.WriteLine("Future game of Little Quiz World");
                        Console.WriteLine("Little Quiz Would will continues working on the patch for this game");
                        Console.WriteLine("Also the new game which is planned will be call BattleShip World beta testing will be very soon ");
                        Console.WriteLine("Please stick close to us ");
                        Console.ReadLine();
                    }
                            break;
                    case 3:
                    if (iChoice == 3)
                    {
                        Console.WriteLine("Credit");
                        Console.WriteLine("We hope you enjoy the game and please feel free to give us feeback at email : [email protected]");
                        Console.ReadLine();
                    }
                    break;


                        }
                    }
                }
             }
            }
        }

    }
}

} I create a little quiz game and a little menu system but my case statment not seem to work , can anyone give me a hand here?

A: 

Check your braces. They're not balanced - at least, not the way you want them to be.

Anon.
A: 

Wow, you have a lot going on there in one function. It might be easier to track down issues if you were to separate this into several functions, call each function from each case statement.

Also you have case statements that appear to jump into the middle of loops.

GrayWizardx
A: 

so i have to change all the case to function??

ichoice == 1 // select of the menu function ....... and so on ?

Tony
A: 

Balancing of braces aside, note that it is redundant to have if (iChoice==2) under case 2: because your switch statement is on iChoice. Same goes for iChoice==3.

Edit: To clarify, you should write

case 2:
    if (iChoice == 2)
    {
        //...
    }

as

case 2:
    //...

But this isn't what's stopping your code from compiling. As others have pointed out, your braces are not balanced and you are putting some of your case statements inside a loop while others are not.

ty
A: 

Balancing of braces aside, note that it is redundant to have if (iChoice==2) under case 2: because your switch statement is on iChoice. Same goes for iChoice==3.

sorry i dont really get it , i am a newbie in c#

Tony