2016-09-28 8 views
0

ランダムな順序で質問を印刷するクイズを作成する必要があります。私はif文ですべての質問を書いており、10の質問に答えた場合は、すべての質問を適切な答えで表示し、ユーザー入力の回答を比較したいと思う。私はまだそれを作る方法を知らないので、コードは1が終わった後に次のif文に行く。C#質問を無作為に選択して終了するまでサイクリング

私はどのようにして文(質問)と乱数ジェネレータが別のものを指しているかなどを調べます。

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"); 
      } 
+0

素晴らしい!あなたの質問は何ですか? – Fabjan

+0

私は調整しました。文(質問)が1の場合はどうすれば終了し、そうであれば乱数ジェネレータは別のものを指します。 –

+0

まあ、あなたはすべての質問を配列に入れてそれをシャッフルし、それらを一つずつ(それらが既にランダムな順序である時に)取り出します。配列をシャッフルする方法を読むことができます[ここ](http://stackoverflow.com/questions/4120002/how-to-randomize-array-items-and-then-crop-the-array-by-required-percent)。 – Fabjan

答えて

2

あなたがループ内であなたのif文を入れることができます(forwhile ...)

また、あなたのコードはより例えばArrayListの中で質問を置くことによって読み出し可能な(または「他の可能性データ記憶 "構造、例えば単純なアレイ)を含む。

次に、この構造の質問のインデックスを常にループで再生できます。

希望します。

+0

よろしくお願いいたします。私たちの講師はまだ私たちに配列を教えていないので、実際には分かりません。 –

+1

さて、あなたはループを見たことがあると思いますか?これはあなたが探しているものかもしれません –

+0

私たちはWhileループでは何もしませんでした。だから、あなたが言っているのは私がループを使うことです。すべてを配列に入れ、配列をループの中に入れなければなりませんか? –

関連する問題