【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 ...
随机推荐
- 25+免费的Bootstrap HTML5网站模板
在前端框架中,Bootstrap可以说是非常有名的高级网站设计框架.网上也有很多使用Bootstrap程序创建的免费模板.这些模板设计成响应式模式,因此你可以使用它们来为所有的设备平台和浏览器创建网站 ...
- 选择排序法-java详解案例
/** * 功能:选择排序法 * 思想:第一次从R[0]-R[N-1]中选取最小值,与R[0]交换,第二次从R[1]-R[N-1]中选取最小值,与R[1]交换, * 第三次从R[2]-R[N-1]中 ...
- easyui-datagrid分页查询
不想写语言描述了,直接代码吧! js: $(document).ready(function () { var driver_datagrid; $('#job').combobox({ url: ' ...
- 天兔(Lepus)监控操作系统(OS)安装配置
监控和被监控端都要安装和配置snmp: [root@HE1bin]# yum install net-snmp* [root@HE1bin]# vi /etc/snmp/snmpd.conf 41行将 ...
- java实现算术表达式求值
需要根据配置的表达式(例如:5+12*(3+5)/7.0)计算出相应的结果,因此使用java中的栈利用后缀表达式的方式实现该工具类. 后缀表达式就是将操作符放在操作数的后面展示的方式,例如:3+2 后 ...
- mac命令行对复杂ipa包重新签名
最近在做ios的自动化平台,需要通过命令行安装卸载ipa包 好了问题来,别人上传的ipa包,很可能是开发签名了只能在特定手机上安装的测试ipa包,那我们如何将其安装在我们的自动化的iphone上呢? ...
- css3 小图标提示特效
最近的计划,就是每天来几个特效,当然这里有限制,在什么候选区只能放一个,还每天有限制发布的,哎, 啊 终于写完了,看到一个挺好玩的东西,想到能不能用网页的特效做出来,试试呗!不过,一想肯东有很多的 相 ...
- 纯css实现轮播图
轮播图的实现原理其实是比较简单的 举个例子 <div class="main"> <div class="div-main"></ ...
- Hadoop权威指南:FSDataInputStream对象
Hadoop权威指南:FSDataInputStream对象 FileSystem对象中的open()方法返回的是FSDataInputStream对象, 而不是标准的java.io类对象,这个类是继 ...
- Python用类实现串以及对串的方法进行单元测试
串是一种常见的数据结构,这里使用Python定义类来实现相应的方法.先看代码,再对相关知识进行讲解. # coding=utf-8 __all__=['ADTString'] class ADTStr ...