2009-12-17 7 views
0
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; 


         } 
        } 
       } 
      } 
      } 
     } 

    } 
} 

} créer un petit jeu quiz et un petit système de menu, mais mon cas statment ne semblent pas travailler, quelqu'un peut me donner un coup de main?C# Console cas déclaration

+0

Ma tête me fait mal de juste essayer de lire ceci. Pouvez-vous formater correctement votre code (c'est-à-dire observer strictement le niveau d'indentation pour le contenu de chaque {{} 'imbriqué)? Si vous faites cela, je soupçonne fortement que vous verrez le problème vous-même. En l'état, vous avez un mélange si étrange d'accolades que cela ne devrait même pas compiler, et il n'est pas clair quant à ce qu'il est supposé faire s'il était compilé. –

Répondre

0

Vérifiez vos orthèses. Ils ne sont pas équilibrés - du moins, pas comme vous le voulez.

0

Wow, vous avez beaucoup à faire dans une seule fonction. Il pourrait être plus facile de retrouver les problèmes si vous deviez séparer cela en plusieurs fonctions, appelez chaque fonction de chaque déclaration de cas.

Vous avez également des instructions de cas qui semblent sauter au milieu des boucles.

0

L'équilibrage des accolades de côté, notez qu'il est redondant d'avoir if (iChoice==2) sous case 2: car votre instruction switch est sur iChoice. Idem pour iChoice==3.

Edit: Pour clarifier les choses, vous devez écrire

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

comme

case 2: 
    //... 

Mais ce n'est pas ce qui empêche votre code de compilation. Comme d'autres l'ont souligné, vos accolades ne sont pas équilibrées et vous placez certaines de vos déclarations dans une boucle alors que d'autres ne le sont pas.

0

Mise à part l'équilibrage des accolades, notez qu'il est redondant d'avoir if (iChoice == 2) sous le cas 2: parce que votre instruction switch est sur iChoice. Idem pour iChoice == 3.

désolé je ne comprends vraiment, je suis un débutant dans C#