函数 枚举和递归

1、函数

一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C#语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其它函数,其它函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。

在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。

void是没有返回值,括号内是参数
private只能在当前类里面用,public公共的,可以在整个命名空间使用

为了在以后用到此函数的时候不会忘记此函数的功能,需要加一些注释,这样在使用的时候鼠标放到上面就会显示写好的注释,使用的时候是在函数上面输入///,也就是三个斜杠。

函数一个是传值另一个是传址:

传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等。

传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传址的有数组和字符串string。

上面说的就牵扯到数据的分类,分为值类型和引用类型,值类型的就是传值的那种,引用类型包括字符串类型,数组和对象,字符串类型特殊,主要是因为字符串实际上是一个字符char[]数组,它在修改的时候并不是直接修改,而是新开辟了一个存储空间也就是建立了一个新的字符串,所以它在调用、赋值的时候相当于传值,但它是引用类型的!

2、枚举enum

练习:

3、递归

递归的特点就是自己调用自己;return是将数值返回上一级;

时间: 2024-10-22 13:45:15

函数 枚举和递归的相关文章

【ACwing 93】【模版】非递归实现组合型枚举——模拟递归

(题面来自ACwing) 从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的顺序输出所有方案,每行1个. 首先,同一行内的数升序排列,相邻两个数用一个空格隔开. 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面). 数据范围 n>0 ,0≤m≤n ,n+(n−m)≤25 此题的正解是dfs枚举,在之前的博客中有所提及.现在考虑用循环模拟机器

函数通信和递归详解

一 函数通信 函数通信就是不同函数之间如何实现变量的共享交换.实现方法大概有三种:参数传递,返回值,全局变量.下面举例来说明这3中方法. 1 参数传递就是把函数名当做另外一个函数的参数来传递,这样2个函数就可以相互通信,为了方便使用了JavaScript语法. function fn1(str){ console.log(str); }; function fn2(fn1){ fn1("Hello World"); }; fn2(fn1); 上面代码fn2可以利用参数fn1,在自己的函

11.高阶函数(匿名/*递归/函数式)对象编程基础

高阶函数匿名函数匿名函数存在的情况:内置函数函数式编程递归函数式编程面向对象的程序设计类:实例:OOP类的名称空间/对象的名称空间 高阶函数 匿名函数 lambda x:x+y #return x+y 定义标志/参数(形式类似函数传参)/跟表达式(返回) 匿名函数存在的情况: 执行完这行之后,如果没有被赋值给别的变量 其引用计数为0,就会被内存垃圾回收机制清空 from functoolimport reduce sorted 倒序并且生成新列表/sort是仅仅倒序 map 映射 reduce

C语言函数的简单递归调用

#include <stdio.h> int age(int n);//外部声明 int main() {     printf("age=%d\n",age(5));//age=18--递归-输出第五个学生的年龄     return 0; } int age(int n) {     //在调用一个函数的过程中又出现直接或者间接的调用该函数本身,称为递归调用     int c;     if (n==1) {         c=10;     }else{     

递归调用实例分析2.在函数中间的递归与在函数尾部的递归

上一篇最后给出了用递归完成字符串逆置的代码,但是没有分析它的具体算法,今天做了如'abcde'字符串递归翻转的图跟大家分享(画的比较烂,具体思路还是有的,详情见附件) 这里的递归调用没有出现在函数末尾,二前面几个递归都出现在函数末尾,所以说递归可以分为在函数末尾的递归与在函数中的递归.其差别如下. 1.在函数尾部的递归,都可以用循环的方式做下去,这样的递归大多数情况只能造成代码的简洁,并不利于机器的运算. 2.在函数中间的递归,不一定能用循环的方式做下去,这样的递归有的可以转化成在函数末尾的递归

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

知识点一.递归 def fun(): num = int(input('输入内容')) if num%2 == 0: print('偶数') return else: fun()fun() 知识点二.匿名函数 #匿名函数#f = lambda x,b:str(x+b)#入参:返回值#(0,30)补零,map()循环函数,str(x).zfill(2)补零result = list(map(lambda x:str(x).zfill(2),range(1,30)))print(result) #枚

函数调用,枚举和递归

一:函数调用的时候有这几种形式,一种参数是数组的,可以这样定义,这种参数是数组: static void paixu(params int[] a)//可以输入数组元素,只能在数组前面加        {            for(int i=1;i<=a.Length-1;i++) }        用的时候        paixu(3,8,6,4,1); 一种参数是地址的,在变量前面加ref: static void add(ref int n)//加上REF是传地址        {

枚举类型 递归

枚举类型:         一组常量的组合         在不指定任何索引的情况下,默认第一个字段从0开始,之后的依次+1         在指定了某个索引的情况下,之后的字段索引会依次+1         若之前定义的一个字段的索引指向了之后的某个默认字段,那么,他俩完全相同         若定义枚举类型时,下面有个字段等于之前的一个字段,那么就是等于这个字段                 若等于之前的一个常量字段的时候强制取int,那就是等于的这个字段的索引号       枚举里面有默

C# Arraylist + struct 综合练习 枚举ENUE 递归

枚举类型 一组常量的组合, 在不制定任何索引的情况下,默认第一个字段从0开始,之后的依次+1 在指定了某个索引的情况下,之后的依次+1 若之前定义的某字段的索引指向了之后的某个默认字段,那么他俩完全相同 不需要初始化 Console.WriteLine(meiju.five); //常量字段 Console.WriteLine((int)meiju.five); //字段代表的值 Console.WriteLine(meiju.one); //常量字段 Console.WriteLine((in