C#笔记(Day4)

1.函数

Main 主函数 = 入口函数 -主方法 -入口方法 static表示静态(修饰符),表示是一个静态函数,void代表没有返回值,如果有返回值void的位置要写返回值的类型,Main方法的名字,可以随意其函数名(要有意义), ()参数 string[] 参数的类型 args是形参,定义什么类型的形参,就要传递过来什么类型的参数可以定义多个方法,但是方法名不能重复定义函数,可以定义在Main函数的上面也可以在下面

// 定义一个方法,用来检验用户的名字
        static void UserName(string name) // 形参,形式上的参数
        {
            Console.WriteLine("检验用户名");
            Console.WriteLine($"用户名是{name}");
        }
        // 定义一个计算两个值相加的方法
        static void Add(int a,int b)
        {
            Console.WriteLine(a+b);
        }
        // 返回的类型是决定返回值的类型
        static int Add1(int a, int b)
        {
            int num = a+b;
            // return 就是返回一个值,可以有也可以没有,看定义方法的需求,注意return后面的代码不会执行
            return num;
        } 
        static void Main(string[] args)
        {
            // UserName("张三"); // 实参,注意类型,形参定义的是什么类型,就要传递过去什么类型的实参
            // Add(10,20);
            int s = Add1(10, 20); // 如果有返回值就要接收才会有结果,或者直接打印
            Console.WriteLine(s);
        } 

2.参数数组

string str = Console.ReadLine(); ​                                                                                            string[ ] strarr = str.Split(' '); ​                                                                                                            int[ ] numarr = new int[strarr.Length]; ​                                                                                          for (int i = 0;i < numarr.Length; i++) ​                                                                                              { ​                                                                                                                                                            numarr[i] = Convert.ToInt32(strarr[i]); ​                                                                                    }

// 如何求一组数据的和
        // 定义一个计算一组数据和的方法
        static int Add(int[] array) // 参数是一个数组,在调用这个函数时,传入的实参要是一个整数类型的数组
        {
            int sum = 0;
            foreach (int item in array)
            {
                sum += item;
            }
            return sum;
        }

        static int Add2(params int[] num)  // params 可以传递任意参数,然后会将这些参数变成一个数组,传递到方法里
        {
            int sum = 0;
            foreach (int item in num)
            {
                sum += item;
            }
            return sum;
        }
        // 定一个找最大值的方法
        static int GetMax(params int[] arr)
        {
            int max = arr[0];
            for (int i = 0; i < arr.Length; i++)
            {
                if(max < arr[i])
                {
                    max = arr[i];
                }
            }
            return max;
        }

3.方法的重载

方法的重载,参数类型不同,参数个数不同,参数顺序不同,(编译器通过不同的参数去识别调用哪一个方法)                                                                                                                                                编译器会根据调用函数时传递参数的个数,类型,顺序,去判断所调用的函数(方法)                            方法重载三种条件:1.参数的类型不同 2.参数的个数不同 3.参数的顺序不同,就可以实现方法的重载 注意: 函数定义的时候是不允许方法名相同的,但是方法重载是可以的

static void GetValue(int a, int b)
        {
            Console.WriteLine(a + b);
        }
        // 参数类型不同
        static void GetValue(double a, double b)
        {
            Console.WriteLine(a + b);
        }
        // 参数个数不同
        static void GetValue(int a, int b, int c)
        {
            Console.WriteLine(a + b + c);
        }
        // 参数顺序不同
        static void GetValue(int a, double b, int c)
        {
            Console.WriteLine(a + b + c);
        }
        static void Main(string[] args)
        {
            GetValue(10, 20);
            GetValue(2.14, 3.56);
            GetValue(10, 20, 30);
            GetValue(10, 3.6, 20);
        }

4.方法的递归

递归就是函数的自身调用自身.注意:方法的递归要有终止条件,方法的递归属于循环,如果没有终止条件就会陷入死循环,在程序中是不允许出现的

static void Text() 
        {
            Console.WriteLine("Text");
            // 在方法的内部调用自身
            // Text();
        }
        // 求某个值的阶乘
        static int F(int x)
        {
            if(x == 1)
            {
                return 1;
            }
            int y = x * F(x - 1);
            return y;
        }
        static int F1(int n)
        {
            if (n == 1)
            {
                return 1;
            }
            int y = n * F1(n - 1);
            return y;
        }
        static int F2(int n)
        {
            if (n == 1)
            {
                return 1;
            }
            return F2(n-1) + F1(n);
        }
        static void Main(string[] args)
        {
            // Text();
            // 10的阶乘 10*9*8*7*6*5*4*3*2*1
            // Console.WriteLine(F(10));
            Console.WriteLine(F2(10));
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值