读书人

初学递归。该如何处理

发布时间: 2012-02-24 16:30:39 作者: rapoo

初学递归。。。。
我想使用递归,调用随机函数生成一个指定的数字,观察这个随机函数的生成的过程
但是得到的结果是:
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;        } 

读书人网 >C#

热点推荐