函数:独立完成某项功能的一个个体,有固定功能函数有 高度抽象函数。

作用:

提高代码的重用性

提高功能开发的效率

提高程序代码的可维护性

函数四要素:

  输入       输出       函数名         函数体         

函数名与函数体必不可少

表达式  (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# 函数 递归的更多相关文章

  1. c语言函数, 函数调用及函数递归

    1. 函数的定义: 返回值类型 函数名(形参列表) {函数体(函数的实现内容)}, 注意: 如果没有参数, 小括号也是必不可少的.  函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函 ...

  2. Python开发【第一篇】Python基础之函数递归

    函数递归 递归的本质: 就是一个函数调用另外一个函数. def d(): return '123' def c(): r = d() return r def b(): r = c() return ...

  3. 函数:递归是神马 - 零基础入门学习Python022

    函数:递归是神马 让编程改变世界 Change the world by program 我们这节课的主题叫递归是神马,将通过小甲鱼带感的讲解,来告诉大家神马是递归!如果说优秀的程序员是伯乐,那么把递 ...

  4. python 函数递归

    ##recursive递归 递归特性:1. 必须有一个明确的结束条件2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通 ...

  5. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  6. python之函数递归

    函数递归调用 在函数内部,可以调用其它函数,如果一个函数在内部调用自身,即是递归调用 为防止无限递归类似于死循环,需要如下: 1.必须要有一个明确的返回值: 2.每次进入更深一层递归时,问题规模应该比 ...

  7. python 函数递归与匿名函数

    1.什么是函数递归? 函数递归调用(是一种特殊的嵌套调用):在调用的函数过程中,又直接或者间接的调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规 ...

  8. Learning-Python【14】:匿名函数与函数递归

    一.什么是匿名函数 匿名函数就是没有名字的函数,又叫lambda表达式.用于一些简单的需要用函数去解决的问题,特点是只能在定义时使用一次,且函数体只有一行 匿名函数的定义就相当于只产生一个变量的值,而 ...

  9. 函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事

    题目:一只小蜜蜂 递归做法: #include<cstdio> #include<iostream> #include<stdlib.h> #include< ...

  10. DFS回溯-函数递归-xiaoz triangles

    题目:小z 的三角形 ★实验任务 三角形的第1 行有n 个由"+"和"-"组成的符号,以后每行符 号比上行少1 个,2 个同号下面是"+", ...

随机推荐

  1. Apache中 RewriteCond 规则参数介绍

    RewriteCond指令定义了规则生效的条件,即在一个RewriteRule指令之前可以有一个或多个RewriteCond指令.条件之后的重写规则仅在当前URI与Pattern匹配并且满足此处的条件 ...

  2. 基于tkinter的九型人格测试系统介绍

    基于tkinter的九型人格测试系统介绍 一.程序代码地址,GitHub 二.程序介绍 1.login.py 登录界面: 注册界面: 2.mainWindow.py 登录成功之后的界面: 3.doTe ...

  3. “全栈2019”Java多线程第三十一章:中断正在等待显式锁的线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  4. 使用Samba实现文件共享

    1987年,微软公司和英特尔公司,共同制定了SMB(Server Messages Block 服务消息块)协议,指在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来 ...

  5. 关于scanf、getchar、getch、getche缓冲区分析——C语言

    缓冲区 根据数据刷新的时机可以将缓冲区的类型分为:全缓冲.行缓冲.无缓冲 (注意:Windows下的输出设备没有缓冲区,意思是printf是无缓冲的,但是在Linux下printf就是行缓冲的,至于为 ...

  6. Java Web(四) 一次性验证码的代码实现

    其实实现代码的逻辑非常简单,真的超级超级简单. 1.在登录页面上login.jsp将验证码图片使用标签<img src="xxx">将绘制验证码图片的url给它 2.在 ...

  7. Python语法基础练习

  8. odoo开发笔记--与微信集成

    odoo 与微信 https://github.com/JoneXiong/oejia_wx

  9. 十分钟内在Ubuntu系统上搭建Mono开发环境(Mono软件Ubuntu系统国内镜像源、Mono国内镜像源)

    Mono软件Ubuntu系统国内镜像源.Mono国内镜像源 http://download.githall.cn/repo 替换为国内源(非官方)有利于加快mono的安装速度,一般情况下,完成mono ...

  10. node mysql插入中文时报错

    一开始以为是前端传参.数据类型的问题,于是就直接把sql语句中的参数直接改成字符串值,但发现还是报500错误. 所以,这就排除了前端的问题. 剩下的就是数据库了,发现我的表设置有问题.凡是有中文数据的 ...