|
分類:[C#]
下記のプログラムでaaaaメソッドの
rnd.nextから「0〜3」の値が返ってくることを期待していますが
なぜか「2,3」の値しか返ってきません。
ちなみに、button1_Clickハンドラのfor文で"Cnt"の代わりに"1"を挿入してあげると
期待通りの値が返ってきます。
何度もソースを見直しましたが判りません。
この不思議な現象を説明できる方、不具合の原因がわかる方がおりましたら教えてください。
宜しくお願いします。
using System;
using System.Collections.Generic;
using System.ComponentMode1;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Random rnd = new Random();
int Cnt = rnd.Next(2);
Console.Write("{0} ", Cnt);
Console.WriteLine(Environment.TickCount);
for(int i = 0; i < Cnt; i++)
// for(int i = 0; i < 1; i++)
{
aaaa();
}
Console.WriteLine("");
}
private void aaaa()
{
Random rnd = new Random();
string xxx = "1234";
Console.Write("{0} ", rnd.Next(xxx.Length));
Console.WriteLine(Environment.TickCount);
}
}
}
|