-1
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 : tonycheung2006@hotmail.co.uk");
                        Console.ReadLine();
                    }
                    break;


                        }
                    }
                }
             }
            }
        }

    }
}

我创建了一个小问答游戏和一个小菜单系统,但我的案例陈述似乎不起作用,有人可以帮我看看吗?

4

4 回答 4

0

检查你的牙套。它们不平衡——至少,不是你想要的那样。

于 2009-12-17T04:03:10.573 回答
0

哇,你在一个函数中有很多事情要做。如果您将其分成几个函数,从每个 case 语句中调用每个函数,可能会更容易追踪问题。

此外,您的 case 语句似乎跳到了循环的中间。

于 2009-12-17T04:06:20.670 回答
0

撇开大括号的平衡,请注意,因为您的 switch 语句是 on ,所以使用if (iChoice==2)under是多余的。也一样。case 2:iChoiceiChoice==3

编辑: 为了澄清,你应该写

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

作为

case 2:
    //...

但这并不是阻止您的代码编译的原因。正如其他人指出的那样,您的大括号不平衡,并且您将一些 case 语句放在循环中,而另一些则不是。

于 2009-12-17T05:06:44.713 回答
0

撇开大括号的平衡不谈,请注意在 case 2: 下使用 if (iChoice==2) 是多余的,因为您的 switch 语句在 iChoice 上。iChoice==3 也是如此。

对不起,我真的不明白,我是 C# 的新手

于 2009-12-17T05:52:09.973 回答