带输出参数的函数
输入参数相当于函数而言,相当于已经赋值了的变量,直接可用
输出参数相当于定义一个没有值的变量,在函数中进行赋值,然后调用函数的时候将赋值带出函数
例:
public void shuchu(int a, out int b) { b = a + 10; //b必须赋值 }
主函数里面的写法:
static void Main(string[] args) { int a = 11,b; Program p = new Program(); p.shuchu(a,out b);//b需要先定义好,对应函数的数据类型,用于接收传递出来的数据 Console.WriteLine(b);//21 }
练习:用输出参数写一元二次方程求解的方法(返回是否有解,和x1,x2的值)

public string fangcheng(int a, int b, int c, out double x1,out double x2) { double de =(double) b * b - 4 * a * c; if (a == 0) { x1 = x2 = -1; return "不是一元二次方程"; } else if (de < 0) { x1 = x2 = -1; return "de<0,此方程无解"; } else { x1 = (double)(-b + de) / 2 * a; x2 = (double)(-b - de) / 2 * a; return "有解"; } }
递归
一、概念:
函数体内调用本函数自身,直到符合某一条件不再继续调用。
**简单说就是让函数先执行到满足条件的那一步,然后带着数据开始调用函数本身。
二、应满足条件:
(1)有反复执行的过程(调用自身);
(2)有跳出反复执行过程的条件(函数出口)
三、例子
阶乘的计算n!= n*(n-1)*(n-2)*(n-3)*……*1(n>0)
四、注意事项notice:
1、递归中必须要存在一个循环结束的条件。
2、递归函数的每次调用都需要栈来存储,如果次数太多的话容易造成栈溢出。
练习:
1、n个桃,每过一天吃1/2+1个,7天后剩一个,原来有几个桃?

public int tao(int day) { if (day == 7) { return 1; } int sum = (tao(day + 1)+1)*2; return sum; }
2、一个人赶一群羊去卖,每过一个村子卖出1/3+1只,7个村子后还剩2只,原来有几只羊?

public double yang(int cun) { if (cun == 7) { return 2; } double sum =(double)(yang(cun + 1) + 1) * 3; return sum; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?