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

本文介绍了一个简单的递归函数实现,并分享了如何优化代码结构的方法,包括将复杂语句拆分为简单语句以提高代码可读性和维护性。

 

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

 

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

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值