問題のテストを表示する C# プログラムを作成しています。テストは10問。しかし、次の助けを借りて新しいクイズを選択した場合、プログラムは同じアルゴリズムに従いたくありません。
private void newToolStripMenuItem_Click (object sender, EventArgs e)
クイズは 10 問出題されても止まりません。クイズは続き、出題を繰り返し、一定数の出題でブロックされます。
コードをステップ実行すると、次のことがわかりました。
- 初めてクイズを解いたとき:
questions.Count=10;
- 2回目に解決すると:
questions.Count=20;
- 3回目に解決したとき:
questions.Count=30
;
questions.Count=10
クイズの答え方を教えてください。
これが私のコードです:
public partial class Form3 : Form
{
int nr;
Collection<question> questions = new Collection<question>();
public class question
{
public bool displayed = false;
public string text;
}
//when I press a button from MenuStrip my quiz begin
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
nr = 1;
button1.Enabled = true;//it's the next_question button
StreamReader sr = new StreamReader("quiz.txt");
while (!sr.EndOfStream)
{
question i = new question();
questions.Add(i);
}
sr.Close();
int x = r.Next(questions.Count);
textBox1.Text = questionText;
questions[x].displayed = true;
current_question=x;
}
}
作成しようとしたことを追加します
Collection<question> questions = new Collection<question>()
私が解決するすべてのクイズに対して、これを最初に置きます
private void newToolStripMenuItem_Click(object sender, EventArgs e)
または、現在のクイズの最後に:
if (nr >= questions.Count){ //here }
これらの変更のいずれも、コレクションが 10 問で増えることを妨げません。ありがとうございました!