从老师的源代码中学到的. 化整为零, 易于代码维护和阅读

 

多个语句太多,能化整为零最好, 分成两句或更多.

 

 private void button1_Click(object sender, EventArgs e)
        {
            lblN.Text = f(Convert.ToInt32(textBoxN.Text)).ToString();
        }

        private long f(int n)
        {
            if (n == 1)
            {
                return 1;
            }

            long ret;
            ret = f(n - 1) + n;
            return ret;

        }

 

这个源代码是一个递归. 上面的测试 完全通过, 但是看了 老师的代码,  有一心得,特此写下. 望以后谨记!!

 

private void button1_Click(object sender, EventArgs e)
        {

//  此处改为了两句,使代码看起来简洁一些, 也清楚明了一些.

                long n = Convert.ToInt32( textBoxN.Text );
                lblN.Text = f( n ).ToString();
        }

 

        private long f(int n)
        {
            if (n == 1)
            {
                return 1;
            }

            long ret;
            ret = f(n - 1) + n;
            return ret;

        }

 

其中改动了如下所示:


            long n = Convert.ToInt32( textBoxN.Text );
                lblN.Text = f( n ).ToString();

 

 

递归编程的模式

 

1.每个递归函数的开头一定是判断递归结束条件是否满足的语句(一般是if 语句)

2.函数体一定至少有一句是"自己调用自己"的,

3.每个递归函数一定有一个控制递归可以终结的变量(通过是做为函数的参考而存),每次自已调用自己时,此变量会变化.(一般是变小),并传递给被调用的函数.

 

 

 

 

你可能感兴趣的:(编程,object,测试,button)