初学递归。。。。
我想使用递归,调用随机函数生成一个指定的数字,观察这个随机函数的生成的过程
但是得到的结果是:
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,5,
难道生成一个 5 需要循环这么多次吗?还是写的代码有问题?
- C# code
private void Form1_Load(object sender, EventArgs e) { gg(10); } int gg(int i) { int i1 = new Random().Next(i); textBox1.Text += i1.ToString() + ","; if (i1 != 5) { i1 = gg(i); } return i1; }
[解决办法]
不要在方法里头new Random
改成:
- C# code
Random rnd=new Random(); int gg(int i) { int i1 = rnd.Next(i); textBox1.Text += i1.ToString() + ","; if (i1 != 5) { i1 = gg(i); }//这就是递归,没错的。 return i1; }