vr引擎设计-c#基础第六天

668 阅读3分钟

1.数组回顾

2.字符串相关方法回顾

3.循环回顾

一、函数(方法)

1.函数的定义

封装一段可执行的代码块

2.为什么要用函数

  • 如果重复执行某段代码,就要重复写很多次
  • 重复代码多了不容易阅读,管理和维护

3.函数的基本结构

image.png

4.函数调用

image.png static表示修饰符,还有很多修饰符,这里static表示静态方法,后面我们会学到

5.形式参数

image.png

6.练习题 求真素数

image.png

image.png image.png

7.方法中的参数数组

image.png

8.练习题

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

  2. 定义一个函数getDivisor,用来取得一个数字的所有因子,把所有因子返回

9.函数重载(Overload)

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

10.函数中返回多个参数(补充)

  1. 返回同个类型的值,我们可以返回一个数组来解决多个同类型返回值的需求
  2. 但是返回多个不同类型的值的时候,我们可以使用out参数
  • 注意:out参数在内部必须要给其赋值 image.png
  1. 关于out参数的练习题
  • 编写一个方法来判断用户输入用户名和密码是否正确,返回用户一个登录结果,并且还要单独返回一个登录信息,如果用户名错误,除了返回登录结果之外,还要返回一个“用户名错误”,“密码错误”的提示信息

image.png

11.ref参数

  • 作用:给形参前面加一个ref,可以将外部变量带入到函数中进行赋值改变,然后将改变后的值在传出来赋值给传进来的变量名,ref参数要求变量外部必须赋值,方法内部可以不赋值

image.png

二、递归函数

1.递归函数的理解

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

2.递归的简单写法举例

image.png

3.练习题1 求斐波那契数列

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

image.png

4.练习题2

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

image.png

5.练习题3 猴子摘桃问题

image.png

image.png