【2017-03-02】C#函数,递归法
函数
函数的意义:独立完成某项功能的个体
函数的优势:1.提高代码的重用性 2.提高功能开发的效率 3.提高程序代码的可维护性
函数四要素:
1,输入:(值的类型+名称)
2,输出:return 后面输出的结果
3,函数名: 函数的名称
4,函数体:{}内的内容
(函数体和函数名必须存在)
定义:在Program类里面,Main函数外面
public static 函数输出类型(int/String) 函数名 (输入的值的类型+值的名称)【后面可以加无数个,输入值的类型加+值的名称。只要需要,值的类型相同不同都没事】
{return +返回的值;} //函数体
若无返回值,函数输出类型为Void
函数的多种形态:
1、有参数,有返回值 (最常用)
2、无参数,无返回值
3、有参数,无返回值
4、无参数,有返回值
函数返回多个值的办法:
ref - 可出可进 ref调用外部变量
out - 只出不进
递归:
递进去,归还回来的一个过程
使用的方法:
函数调用它本身
函数一遇到return就会立即停止后面代码的执行,跳出函数,执行调用本身后面归还的代码。
练习题
public static string 猜拳(int a, int b)
{
string c = "输入有误!";
string s = "";
string t = "";
if (a >= && a <= && b >= && b <= )
{
if (a == ) {
s = "石头";
}
else if (a == )
{
s = "剪刀";
}
else if (a == )
{
s = "包袱";
}
if (b == )
{
t = "石头";
}
else if (b == )
{
t = "剪刀";
}
else if (b == )
{
t = "包袱";
} if (a == b - || a == b + )
{
c = ("选手1的手势是" + s + ",选手2的手势是" + t + ",选手1获胜!");
}
else if (a == b + || a == b - )
{
c = ("选手1的手势是" + s + ",选手2的手势是" + t + ",选手2获胜!");
}
else if (a == b)
{
c = ("选手1的手势是" + s + ",选手2的手势是" + t + ",平局!");
}
}
return c;
}
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 c = Program.猜拳(a,b);
Console.WriteLine(c); Console.ReadLine();
}
【2017-03-02】C#函数,递归法的更多相关文章
- C语言之函数调用11—递归法求Hermite函数
/*递归法! ========================================== 题目: Hermite 函数:输入n.x,求Hn(x)? H0(x)=1; H1(x)=2*x; H ...
- C语言之函数调用17—递归法之中的一个般函数的调用(2)
//递归法 /* ================================================================== 题目:求F(60),当中F(n)定义例如以下: ...
- 归并排序,递归法,C语言实现。
利用归并排序法对序列排序的示意图(递归法): 一.算法分析:利用递归的分治方法:1.将原序列细分,直到成为单个元素:2.在将分割后的序列一层一层地按顺序合并,完成排序.细分通过不断深入递归完成,合并通 ...
- 八皇后问题详细分析与解答(递归法解答,c#语言描述)
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题.该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或 ...
- Learning-Python【14】:匿名函数与函数递归
一.什么是匿名函数 匿名函数就是没有名字的函数,又叫lambda表达式.用于一些简单的需要用函数去解决的问题,特点是只能在定义时使用一次,且函数体只有一行 匿名函数的定义就相当于只产生一个变量的值,而 ...
- 用递归法将一个整数n转换成字符串。
用递归法将一个整数n转换成字符串. 比如,输入483,应输出字符串"483".n的位数不确定,能够是随意位数的整数. #include "stdafx.h" # ...
- python基础-基础知识(包括:函数递归等知识)
老男孩 Python 基础知识练习(三) 1.列举布尔值为 False 的值空,None,0, False, ", [], {}, () 2.写函数:根据范围获取其中 3 和 7 整除的所有 ...
- (python函数03)zip()函数
(python函数03)zip()函数 zip是用来压缩的,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个元组(tuple),然后返回有这些tuples组成的对象,可强制转化为列表和 ...
- 算法笔记_013:汉诺塔问题(Java递归法和非递归法)
目录 1 问题描述 2 解决方案 2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...
- c语言函数, 函数调用及函数递归
1. 函数的定义: 返回值类型 函数名(形参列表) {函数体(函数的实现内容)}, 注意: 如果没有参数, 小括号也是必不可少的. 函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函 ...
随机推荐
- 20165225《Java程序设计》第五周学习总结
20165225<Java程序设计>第五周学习总结 1.视频与课本中的学习: - 第七章学习总结 内部类: 内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方 ...
- router 设置时 模板的新引法
{ path: '/Index1', name: 'Index', component: () => import ('@/components/Index.vue') },
- CF1103D Professional layer dp
正解:dp 解题报告: 传送门! 首先不难想到求个gcd,然后把gcd质因数分解成p1w1*p2w2*p3w3*...*pmwm 显然只要满足对每个p有一个ai%pj!=0就好,也就是说对每个pj找出 ...
- Redis分布式锁服务(转)
原文:http://www.cnblogs.com/mushroom/p/4752499.html 概述 在多线程环境下,通常会使用锁来保证有且只有一个线程来操作共享资源.比如: object obj ...
- MySQL+InnoDB semi-consitent read原理及实现分析(转)
add by zhj: 主要讲的是在MySQL在Repeatable Read和Read Committed级别下,加锁时的不同,在Read Committed隔离级别下,只对where 中满足条件的 ...
- 浅谈KMP算法
一.介绍 烤馍片KMP算法是用来处理字符串匹配问题的.比如说给你两个字符串A,B,问B是不是A的子串? 比如,eg就是aeggx的子串 一般讲字符串A称为主串,用来匹配的B串称为模式串 定义n为字符串 ...
- PHP三种运行方式(转载)
三种运行方式:mod_php5.cgi.fast-cgi 1. 通过HTTPServer内置的模块来实现, 例如Apache的mod_php5,类似的Apache内置的mod_perl可以对perl支 ...
- mysql 5.7配置项最详细的解释
配置样例 首先提供一个我使用的配置样例 [client] #password=88888888 socket=/data/var/mysql/mysql.sock [mysqld_safe] pid- ...
- 前端框架之Vue(4)-Class与Style绑定
操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将 ...
- MYSQL: set names utf8是什么意思?
set names utf8 是用于设置编码,可以再在建数据库的时候设置,也可以在创建表的时候设置,或只是对部分字段进行设置,而且在设置编码的时候,这些地方最好是一致的,这样能最大程度上避免数据记录出 ...