C# 函数 递归
函数:独立完成某项功能的一个个体,有固定功能函数有 高度抽象函数。
作用:
提高代码的重用性
提高功能开发的效率
提高程序代码的可维护性
函数四要素:
输入 输出 函数名 函数体
函数名与函数体必不可少
表达式 (Main函数外)
public static 返回值类型 函数名( 函数参数 ) public static int Jia10 ( int a ) //函数名最好取动词
{ { //函数参数仅告诉需要输入的参数类型
return 返回值类型 ; ........................... int b = a + 10 ;
} return
}
program ..........
int i = 20;
int j =program.Jia10( j ) ; //program调用
Console.WriteLine( j );
二 返回两个值的情况
1 ref 调用外部变量,函数中对对变量的任何改变都会映射到变量本身。
例:public static int test ( ref int a , int b )
{
a = 5;
retrun a + b ;
}
static void Main ( string [ ] arg s )
{
int i = 2 ;
int j = 10;
int c = program.test (ref i , j )
Console.WriteLine( i );
Console.WriteLine( c );
}
输出结果 i = 5
c = 15
2 out 在函数方法中只出不进,不将值带入方法内部,但能够将内部的值带出。
例:public static int test ( out int a , int b )
{
a = 5;
retrun a + b ;
}
static void Main ( string [ ] arg s )
{
int i = 0 ;
int j = 10;
int c = program.test (ref i , j )
Console.WriteLine( i );
Console.WriteLine( c );
}
输出结果 i = 5
c = 15
三 函数的多种形态
1 有参数有返回值,(表达式例句)
2无参数无返回值 public static void test ()
{
Console.WriteLine( " 哈哈哈哈" ); //不论参数如何 只要调用只会输出“哈哈哈哈”
}
........
program test();
3有参数无返回 public static void test2 ( int a; int b }
{
Console.WriteLine( a+b ); // void 声明无返回值
}
........
program test2( 10,20);
4无参数有返回值 public static int test3 ( )
{
return 20 ; //retrun 声明返回
}
........
program test3 ( );
递归
函数体内调用本函数自身,直到符合某一条件不再继续调用。
满足条件
调用自身
有跳出反复执行过程的条件
注意事项
递归中必须存在一个循环结束的条件。
递归函数的每次调用都需要栈在存储,如果次数太多的话容易造成栈溢出。
例
public static void test ( int a )
{
if(a<3)
retrun;
Console.WriteLine( "这是第“+a+”层梦境" ); //递归中 retrun 声明跳出
a++
test(a);
a--
Console.WriteLine("第"+a+"层梦境醒了");
}
C# 函数 递归的更多相关文章
- c语言函数, 函数调用及函数递归
1. 函数的定义: 返回值类型 函数名(形参列表) {函数体(函数的实现内容)}, 注意: 如果没有参数, 小括号也是必不可少的. 函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函 ...
- Python开发【第一篇】Python基础之函数递归
函数递归 递归的本质: 就是一个函数调用另外一个函数. def d(): return '123' def c(): r = d() return r def b(): r = c() return ...
- 函数:递归是神马 - 零基础入门学习Python022
函数:递归是神马 让编程改变世界 Change the world by program 我们这节课的主题叫递归是神马,将通过小甲鱼带感的讲解,来告诉大家神马是递归!如果说优秀的程序员是伯乐,那么把递 ...
- python 函数递归
##recursive递归 递归特性:1. 必须有一个明确的结束条件2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通 ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- python之函数递归
函数递归调用 在函数内部,可以调用其它函数,如果一个函数在内部调用自身,即是递归调用 为防止无限递归类似于死循环,需要如下: 1.必须要有一个明确的返回值: 2.每次进入更深一层递归时,问题规模应该比 ...
- python 函数递归与匿名函数
1.什么是函数递归? 函数递归调用(是一种特殊的嵌套调用):在调用的函数过程中,又直接或者间接的调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规 ...
- Learning-Python【14】:匿名函数与函数递归
一.什么是匿名函数 匿名函数就是没有名字的函数,又叫lambda表达式.用于一些简单的需要用函数去解决的问题,特点是只能在定义时使用一次,且函数体只有一行 匿名函数的定义就相当于只产生一个变量的值,而 ...
- 函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事
题目:一只小蜜蜂 递归做法: #include<cstdio> #include<iostream> #include<stdlib.h> #include< ...
- DFS回溯-函数递归-xiaoz triangles
题目:小z 的三角形 ★实验任务 三角形的第1 行有n 个由"+"和"-"组成的符号,以后每行符 号比上行少1 个,2 个同号下面是"+", ...
随机推荐
- 程序员、技术领导、管理者各有烦恼,你占了几条?ZZ
Q1: 作为学生,你学习 SE的烦恼有哪些? http://blog.jobbole.com/101840/
- windows 7 下elasticsearch5.0 安装head 插件
windows 7 下elasticsearch5.0 安装head 插件 elasticsearch5.0 和2有了很大的变化,以前的很多插件都有了变化比如 bigdesk head,以下是安装he ...
- UPDATE语句中SET部分列赋值的先后顺序有影响么?
昨天研发同事问我个问题,UPDATE语句中SET部分列赋值的先后顺序会影响结果么?以前没考虑过这个问题,因为通常我们都会UPDATE时给列赋予一个确定的值,而不是一个依赖于其他列的值. 测试环境: D ...
- Winform相关
(1)C# WinForm程序退出的方法 1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Applica ...
- 在windows10上创建ASP.NET mvc5+Memcached服务
感谢两位两位大佬: https://blog.csdn.net/l1028386804/article/details/61417166 https://www.cnblogs.com/running ...
- [HAOI2018]染色(容斥+NTT)
补充一篇详细得不能再详细的题解,比如让我自己看懂. 可能与前面的题解有些相同,我想补充一下自己的想法. 显然,最多 \(K\) 最大为 \(N=min(\lfloor \frac nS\rfloor, ...
- linux 使用进程管理工具 supervisor
1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...
- Freemarker实例教程
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任.作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/a ...
- postgresql-int,bigint,numeric效率测试
在postgresql9.5的时候做过一个测试就是sum()的效率最终的测试结果是sum(int)>sum(numeric)>sum(bigint)当时比较诧异为啥sum(bigint)效 ...
- JS 跨域认识及如何解决
什么是跨域 指的是浏览器不允许javascrip脚本向其他域名发起ajax请求. 跨域的各种情况判定 URL 说明 是否允许通信 http://www.a.com/a.js http://www.a. ...