一、函数基础

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参数、递归的更多相关文章

  1. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  2. scala函数定义的四种方式

    最近开始接触scala编程语言,觉得还是比较新的一个东西,虽然说和java比较像,是java的继承者,兼顾面向对象编程和函数式编程的优点,但是,终究是一个新的东西,还是要从最基本的学起.而这当中,函数 ...

  3. 从零开始学C++之从C到C++(二):引用、内联函数inline、四种类型转换运算符

    一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型  &引用名 = 变量名: 例如:int a=1; int  &b=a;// b是a的别名,因此a和b是同一个单元 注 ...

  4. 引用、数组引用与指针引用、内联函数inline、四种类型转换运算符

    一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型  &引用名 = 变量名: 例如:int a=1;  int  &b=a;// b是a的别名,因此a和b是同一个单元 ...

  5. 【2017-03-09】SQL Server 数据库基础、四种约束

    一.数据库和内存的区别 数据库:一些存储在硬盘上的数据文件 内存:计算机临时存储的一些数据 二.常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl 三. ...

  6. 【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)

    1. 位置传递: #--coding:utf-8-- def send(name,address): return 'package is sent to %s, located in %s' %(n ...

  7. DeviceIoControl函数对应的四种数据交换方式

    交换方式                                输入缓冲区                                         输出缓冲区 METHOD_BUFFE ...

  8. C++语言基础(24)-四种类型转换运算符(static_cast、dynamic_cast、const_cast和reinterpret_cast)

    一.static_cast static_cast 只能用于良性转换,这样的转换风险较低,一般不会发生什么意外,如: #include <iostream> #include <cs ...

  9. ADO.NET基础学习-----四种模型,防止SQL注入

    1.ExcuteNonQuery 执行非查询语句,返回受影响的行数. // 1.ExcuteNonQuery string sqlconn = "Data Source=wss;Initia ...

随机推荐

  1. nodejs那些事

    安装篇: 1.从http://nodejs.cn/上下载了nodejs-v4.4.4版安装包(已存入360云盘) 2.在windows下双击——下一步——下一步安装即可(注意:安装路径就默认安装到C: ...

  2. --@angularJS--综合小实例1

    <!DOCTYPE HTML><html ng-app="myapp"><head> <title>综合小实例</title& ...

  3. 判断div是否有滚动条

    判断div是否有滚动条 var obj=document.getElementById("showDiv"); if(obj.scrollHeight>obj.clientH ...

  4. CodeForces 446B

    DZY Loves Modification time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  5. 一个web应用的诞生--美化一下

    经过上一章的内容,其实就页面层来说已结可以很轻松的实现功能了,但是很明显美观上还有很大的欠缺,现在有一些很好的前端css框架,如AmazeUI,腾讯的WeUI等等,这里推荐一个和flask集成很好的b ...

  6. javascript设计模式与开发实践阅读笔记(11)—— 模板方法模式

    模板方法模式: 由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类.通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序.子类通过继承这个抽象类,也继 ...

  7. HDU 3783 ZOJ

    ZOJ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. vs2015 动态链接库问题

    问题: 最近要用vs2015编写一个动态链接库,生成动态链接库后,换到另一台windows下发现无法使用. 使用depends检查发现原因是缺少 MSVCP140.DLL等动态链接库. 解决: 将编译 ...

  9. 关于C++的const对象

    对于const类对象,类指针, 类引用, 只能调用类的const成员函数. 1.const成员函数不允许被修改它所在对象的任何一个成员变量. 2.const成员函数能访问对象的const成员, 而其他 ...

  10. 初识XMLHttpRequeset

    XMLHttpRequeset是什么 XmlHttpRequest,可扩展的超文本传输歇息.从字面上理解:xml,可扩展的标记语言:http,超文本传送协议:request,请求.XmlHttpReq ...