【2017-03-05】函数基础、函数四种结构、ref和out参数、递归
一、函数基础
1、函数/方法:
非常抽象
独立完成某项功能的一个个体
2、函数的作用:
提高代码的重用性
提高功能开发的效率
提高程序代码的可维护性
3、分类
固定功能函数
高度抽象函数
4、函数四要素:
输入,输出,函数体,函数名。(函数体、函数名必须有,输入、输出不是必须有的!)
5、格式
public static 返回值类型 函数名(输入值类型参数,第二个,第三个,int a,string b)
{
return 上面的返回值类型
}
注:函数也是放在Main函数之外,在Class之内。花括号之内的为函数体。


6、函数基础练习题
(1)
定义一个函数,需要用户输入一个姓名
输出 “xxx,你好啊!”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 练习1
{
class Program
{
public static string 你好(string a)
{ string b = a + "你好啊";
return b;
} static void Main(string[] args)
{
Console.Write("请输入您的姓名:");
string a = Console.ReadLine();
string c = Program.你好(a);
Console.Write(c);
Console.ReadLine();
}
}
}
(2)
定义一个函数,需要用户输入两个姓名
输出“xxx和xxx你们的缘分指数是(1-100),散了吧/缘分不错!”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 练习2
{
class Program
{
public static string yf(string a, string b)
{ Random r = new Random();
int c= r.Next(, );
string d;
if (c < )
d = a + "和" + b + "你们的缘分指数是" + c + ",不合适,散了吧!";
else
d = a + "和" + b + "你们的缘分指数是" + c + ",凑合过吧!";
return d;
} static void Main(string[] args)
{
Console.Write("请输入第一个姓名:");
string a = Console.ReadLine();
Console.Write("请输入第二个姓名:");
string b = Console.ReadLine();
string d = Program.yf(a,b);
Console.Write(d);
Console.ReadLine();
}
}
}
(3)
定义一个函数,计算乘除,需要用户输入两个数和一个运算符
按照输入的运算符,对两个数进行相对的运算,输出结果
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 练习3
{
class Program
{
public static double 计算(int a, int b, string c)
{
int d = ;
if (c == "*")
d = a * b;
else if (c == "/")
d = a / b;
return d;
} static void Main(string[] args)
{
Console.Write("请输入第一个数:");
int a = Convert.ToInt32(Console.ReadLine()); Console.Write("请输入第二个数:");
int b = Convert.ToInt32(Console.ReadLine()); Console.Write("请输入运算符*或/:");
string c = Console.ReadLine();
double d = Program.计算(a, b, c);
Console.Write(d);
Console.ReadLine();
}
}
}
(4)
猜拳方法
定义一个猜拳方法,返回比试结果,需要输入两个手势
手势可以是0 1 2
输出结果:“选手1的手势是石头,选手2的手势是包袱,选手2获胜!”
“手势有误!”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 练习4
{
class Program
{
public static string 猜拳(int a, int b)
{
//0-剪刀,1-石头,2-布
string c = "";
string d = "";
string e = "";
if (a >= && a <= && b >= && b <= )
{
if (a == )
c = "剪刀";
else if (a == )
c = "石头";
else if (a == )
c = "布";
if (b == )
d = "剪刀";
else if (b == )
d = "石头";
else if (b == )
d = "布";
if ((a - b == ) || (a - b == -))
e = "选手1的手势是" + c + "选手二的手势是" + d + "选手一获胜!";
else if ((b - == ) || (b - a == -))
e = "选手1的手势是" + c + "选手二的手势是" + d + "选手二获胜!";
}
else
e = "输入有误!";
return e;
}
static void Main(string[] args)
{
Console.Write("请输入第一个手势(0、1、2):");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入第二个手势(0、1、2):");
int b = Convert.ToInt32(Console.ReadLine()); string f = Program.猜拳(a, b);
Console.Write(f); Console.ReadLine();
}
}
}
函数的多种形态:
1、有参数,有返回值(上文的例子)
2、无参数,无返回值

3、有参数,无返回值

4、无参数,有返回值

函数返回多个值的办法:
ref - 可出可进 ref 调用外部变量

out - 只出不进

递归:
递进去,归还回来的一个过程
使用的方法:
函数调用它本身
函数一遇到return就会立即停止后面代码的执行,跳出函数,执行调用本身后面归还的代码。

【2017-03-05】函数基础、函数四种结构、ref和out参数、递归的更多相关文章
- 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...
- scala函数定义的四种方式
最近开始接触scala编程语言,觉得还是比较新的一个东西,虽然说和java比较像,是java的继承者,兼顾面向对象编程和函数式编程的优点,但是,终究是一个新的东西,还是要从最基本的学起.而这当中,函数 ...
- 从零开始学C++之从C到C++(二):引用、内联函数inline、四种类型转换运算符
一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型 &引用名 = 变量名: 例如:int a=1; int &b=a;// b是a的别名,因此a和b是同一个单元 注 ...
- 引用、数组引用与指针引用、内联函数inline、四种类型转换运算符
一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型 &引用名 = 变量名: 例如:int a=1; int &b=a;// b是a的别名,因此a和b是同一个单元 ...
- 【2017-03-09】SQL Server 数据库基础、四种约束
一.数据库和内存的区别 数据库:一些存储在硬盘上的数据文件 内存:计算机临时存储的一些数据 二.常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl 三. ...
- 【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)
1. 位置传递: #--coding:utf-8-- def send(name,address): return 'package is sent to %s, located in %s' %(n ...
- DeviceIoControl函数对应的四种数据交换方式
交换方式 输入缓冲区 输出缓冲区 METHOD_BUFFE ...
- C++语言基础(24)-四种类型转换运算符(static_cast、dynamic_cast、const_cast和reinterpret_cast)
一.static_cast static_cast 只能用于良性转换,这样的转换风险较低,一般不会发生什么意外,如: #include <iostream> #include <cs ...
- ADO.NET基础学习-----四种模型,防止SQL注入
1.ExcuteNonQuery 执行非查询语句,返回受影响的行数. // 1.ExcuteNonQuery string sqlconn = "Data Source=wss;Initia ...
随机推荐
- cf734 E. Anton and Tree
这个题的题意还是很劲的.搞了好久才知道是怎么变得. (假设已经缩好了点,每次边中间颜色不同的,然后和就和他外面的相同,继续再变这个大的,依次类推,最多就是树的直径D/2) (还是英语水平太弱了(吐槽+ ...
- windows下修改apache并发数
还没有尝试 修改apache的最大连接数,方法如下: 步骤一 先修改 /path/apache/conf/httpd.conf文件. # vi httpd.conf 将“#Include conf/e ...
- java IMAGEIO
javax.imageio使用 ImageIO 类的静态方法可以执行许多常见的图像 I/O 操作. 此包包含一些基本类和接口,有的用来描述图像文件内容(包括元数据和缩略图)(IIOImage): 有的 ...
- 天兔(Lepus)监控系统快速安装部署
Lepus安装需要Lamp环境,Lamp环境的安装个人认为比较费劲,XAMPP的一键部署LAMP环境省心省力, lepus官网手册也建议采用XAMPP的方式安装,lepus也是在XAMPP上进行研发的 ...
- js url参数的获取和设置以及删除
//获取url参数的值:name是参数名 function getQueryString(name) { var reg = new RegExp("(^|&)" + na ...
- 程序启动缓慢-原来是hbm.xml doctype的原因
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "h ...
- Spring xml中进行面向切面的配置
Spring xml中进行面向切面的配置 XML: <?xml version="1.0" encoding="UTF-8"?> <beans ...
- Unity 容器教程
文章摘自: http://www.cnblogs.com/qqlin/archive/2012/10/18/2720830.html
- POJ2407(欧拉函数)
Relatives Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13598 Accepted: 6771 Descri ...
- UE4中的集合:TSet容器
好久没有更新了,最近一直在老家过年,网络不通的,今天才有时间更新一集. 一.TSet<T>是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这一节,我们就介绍集合容 ...