C#第六节

86 阅读2分钟

一.函数

  • 函数的定义:封装一段可执行的代码块
  • 为什么要使用函数:如果重复执行某段代码,就要重复写很多遍,代码重复,不易阅读、管理和维护。
  • 函数的基本结构:

image.png

  • 函数的调用:

image.png

static表示修饰符,这里表示静态方法

  • 形式参数:

image.png

  • 创建一个方法将输入的数字进行翻转如:输入:123 输出:321

image.png

二.函数的重载

有时候我们可能需要使用同一个函数,但是传入的参数类型不一样,或者函数体中只有细微变动,这样我们可以使用函数重载的方式,根据传入参数的类型执行对应的函数 image.png

1.方法中的参数数组

image.png

2.函数中返回多个参数

  • 返回同个类型的值,我们可以返回一个数组来解决多个同类型返回值的需求
  • 但是返回不同类型的值的时候我们可以使用out参数(注意:out参数必须在函数内部赋值)

image.png

- 关于out参数的练习题

  • 编写一个方法来判断用户输入用户名和密码是否正确,返回用户一个登录结果,并且还要单独返回一个登录信息,如果用户名错误,除了返回登录结果之外,还要返回一个“用户名错误”,“密码错误”的提示信息

image.png

- ref函数

  • ref 同样的还是将函数中的变量的值带出来 不一样的是在函数内可以不用赋值 外部接受的变量需要赋初始值

image.png

三.练习题

image.png

image.png

image.png

  1. 定义一个函数Max,用来取得一个数组中的最大值 image.png

四.递归函数

1. 递归函数的理解:

递归就是在函数中调用自己,这样就会进入一直调用自己的套娃行为,所以递归一般有一个出口,这个出口就是停止调用自己

2.递归的简单示例

image.png 3. 练习题

  • 提示:已知 1 1 2 3 5 8 13 21 34... 我们发现后面数是前两个数的和,我们称这种数列为斐波那契数列
  • 题目要求:输入n,求出n项的斐波那契数列
  • 例:输入4 输出 1 1 2 3

image.png

  • 有关系式1 * 1+2 * 2+3 * 3+...k * k<2000,编一个程序,求出满足此关系的k的最大值,利用递归和循环解决这个问题

image.png

image.png

image.png