一、函数基础

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. IOS web app一些实用的属性设置

    IOS对safari私有的属性很多,虽然很多不为人知但是却很实用.掌握好这些属性对web app和混合app的开发会很有帮助. 1.format-detection[telephone=no] 是否自 ...

  2. 安装oracle后不能连接问题

    在安装oracle之前,还特意找了几篇博客和百度经验看过,因为知道oracle的只能安装一次,如果装不上,OK,基本排除安装的可能了(安装的残留文件卸不完) 然而,我的问题没有出在这里,安装很顺利,一 ...

  3. Struts2 属性驱动、模型驱动、异常机制

    模型驱动使用单独的VO(值对象)来封装请求参数和处理结果,属性驱动则使用Action实例来封装请求参数和处理结果. 一.使用模型驱动 1.login.action采用模型驱动模式实现,采用模型驱动时必 ...

  4. 仿网易邮箱5.0(四):信息提示插件(tips.js)

    信息提示插件,在平常的开发中也是经常乃至的一个插件,像是一些辅助信息的提示,如:加载成功.提交信息成功或失败等等.这个插件在163邮箱中用在切换标签时提示加载状态. 下面我们先来分析一下这个小插件需要 ...

  5. 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)

    HTTP is not just for serving up web pages. It's also a powerful platform for building APIs that expo ...

  6. depcomp: line 571: exec: g++: not found

    ../depcomp: line 571: exec: g++: not foundmake[1]: *** [my_new.o] Error 127make[1]: Leaving director ...

  7. 在ASP.NET MVC3项目中,自定义404错误页面

    在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中 ...

  8. enum 用法

    public enum WeekDay { SUN(, "Sunday", "SUN"), MON(, "Monday", "MO ...

  9. Oracle中 Instr 这个函数

    http://www.jb51.net/article/42369.htm sql :charindex('字符串',字段)>0 charindex('administrator',MUserI ...

  10. Linux笔记(六) - 压缩解压命令

    (1)压缩文件( gz):gzip-d 解压只能压缩文件,不保留原文件例:gzip a.txt(2)解压文件( gz):gunzip 例:gunzip a.txt.gz(3)打包目录(tar):tar ...