2016.7.31C#基础 函数

函数


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

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

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

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

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

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

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

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

 

 

 

例题:

       1、 //练习:判断邮箱格式是否正确
            //1.有且只能有一个@
            //2.不能以@开头
            //3.@之后至少有一个.
            //4.@和.不能靠在一起
            //5.不能以.结尾

          /// <summary>     
         /// 判断邮箱格式输入是否正确,有参数,没有返回值
        /// </summary>
        /// <param name="mail"></param>
        public void Mail(string mail) //有参数,没有返回值
        {

            if (mail.Contains("@"))
            {
                int a = mail.IndexOf("@");
                int b = mail.LastIndexOf("@");
                if (a == b)
                {
                    if (!mail.StartsWith("@"))
                    {
                        if (mail.Contains("."))
                        {
                            string mail1 = mail.Substring(a);
                            int c = mail1.IndexOf(".");
                            if (c != 1)
                            {
                                if (mail.Substring(a - 1, 1) != ".")
                                {
                                    if (!mail.EndsWith("."))
                                    {
                                        Console.Write("输入的邮箱正确!");
                                    }
                                    else
                                    {
                                        Console.Write("请输入正确的邮箱地址!!");
                                    }
                                }
                                else
                                {
                                    Console.Write("请输入正确的邮箱地址!!");
                                }
                            }
                            else
                            {
                                Console.Write("请输入正确的邮箱地址!!");
                            }
                        }
                        else
                        {
                            Console.Write("请输入正确的邮箱地址!!");
                        }
                    }
                    else
                    {
                        Console.Write("请输入正确的邮箱地址!!");
                    }
                }
                else
                {
                    Console.Write("请输入正确的邮箱地址!!");
                }
            }
            else
            {
                Console.Write("请输入正确的邮箱地址!!");
            }
        }


        /// <summary>
        /// 判断邮箱格式是否正确,无参数,没有返回值
        /// </summary>

        public void Mail1()    //无参数,无返回值
        {
            Console.Write("请输入一个邮箱地址:");
            string mail = Console.ReadLine();
            if (mail.Contains("@"))
            {
                int a = mail.IndexOf("@");
                int b = mail.LastIndexOf("@");
                if (a == b)
                {
                    if (!mail.StartsWith("@"))
                    {
                        if (mail.Contains("."))
                        {
                            string mail1 = mail.Substring(a);
                            int c = mail1.IndexOf(".");
                            if (c != 1)
                            {
                                if (mail.Substring(a - 1, 1) != ".")
                                {
                                    if (!mail.EndsWith("."))
                                    {
                                        Console.Write("输入的邮箱正确!");
                                    }
                                    else
                                    {
                                        Console.Write("请输入正确的邮箱地址!!");
                                    }
                                }
                                else
                                {
                                    Console.Write("请输入正确的邮箱地址!!");
                                }
                            }
                            else
                            {
                                Console.Write("请输入正确的邮箱地址!!");
                            }
                        }
                        else
                        {
                            Console.Write("请输入正确的邮箱地址!!");
                        }
                    }
                    else
                    {
                        Console.Write("请输入正确的邮箱地址!!");
                    }
                }
                else
                {
                    Console.Write("请输入正确的邮箱地址!!");
                }
            }
            else
            {
                Console.Write("请输入正确的邮箱地址!!");
            }
        }


        /// <summary>
        /// 判断邮箱格式是否正确,无参数,有返回值
        /// </summary>
        /// <returns></returns>

        public string Mail2()     //无参数,有返回值
        {
            Console.Write("请输入一个邮箱地址:");
            string mail = Console.ReadLine();
            if (mail.Contains("@"))
            {
                int a = mail.IndexOf("@");
                int b = mail.LastIndexOf("@");
                if (a == b)
                {
                    if (!mail.StartsWith("@"))
                    {
                        if (mail.Contains("."))
                        {
                            string mail1 = mail.Substring(a);
                            int c = mail1.IndexOf(".");
                            if (c != 1)
                            {
                                if (mail.Substring(a - 1, 1) != ".")
                                {
                                    if (!mail.EndsWith("."))
                                    {
                                        Console.Write("输入的邮箱正确!");
                                    }
                                    else
                                    {
                                        Console.Write("请输入正确的邮箱地址!!");
                                    }
                                }
                                else
                                {
                                    Console.Write("请输入正确的邮箱地址!!");
                                }
                            }
                            else
                            {
                                Console.Write("请输入正确的邮箱地址!!");
                            }
                        }
                        else
                        {
                            Console.Write("请输入正确的邮箱地址!!");
                        }
                    }
                    else
                    {
                        Console.Write("请输入正确的邮箱地址!!");
                    }
                }
                else
                {
                    Console.Write("请输入正确的邮箱地址!!");
                }
            }
            else
            {
                Console.Write("请输入正确的邮箱地址!!");
            }
            return (mail);
        }


        /// <summary>
        /// 判断邮箱格式是否正确,有参数,有返回值
        /// </summary>
        /// <param name="mail"></param>
        /// <returns></returns>

        public string Mail3(string mail)    //有参数,有返回值
        {
            if (mail.Contains("@"))
            {
                int a = mail.IndexOf("@");
                int b = mail.LastIndexOf("@");
                if (a == b)
                {
                    if (!mail.StartsWith("@"))
                    {
                        if (mail.Contains("."))
                        {
                            string mail1 = mail.Substring(a);
                            int c = mail1.IndexOf(".");
                            if (c != 1)
                            {
                                if (mail.Substring(a - 1, 1) != ".")
                                {
                                    if (!mail.EndsWith("."))
                                    {
                                        Console.Write("输入的邮箱正确!");
                                    }
                                    else
                                    {
                                        Console.Write("请输入正确的邮箱地址!!");
                                    }
                                }
                                else
                                {
                                    Console.Write("请输入正确的邮箱地址!!");
                                }
                            }
                            else
                            {
                                Console.Write("请输入正确的邮箱地址!!");
                            }
                        }
                        else
                        {
                            Console.Write("请输入正确的邮箱地址!!");
                        }
                    }
                    else
                    {
                        Console.Write("请输入正确的邮箱地址!!");
                    }
                }
                else
                {
                    Console.Write("请输入正确的邮箱地址!!");
                }
            }
            else
            {
                Console.Write("请输入正确的邮箱地址!!");
            }

            return (mail);
        } 


     static void Main(string[] args)
        {
            //Program hanshu= new Program();

            //有参数,无返回值
            //Console.Write("请输入一个邮箱地址:");
            //string a = Console.ReadLine();
            //hanshu.Mail("lll@qq.com");

            //无参数,无返回值
            //hanshu.Mail1();

            //无参数,有返回值            
            //Console.Write((hanshu.Mail3(a)).Substring(2,3))

            //有参数,有返回值
            //Console.Write("请输入一个邮箱地址:");
            //string a = Console.ReadLine();
            //Console.Write((hanshu.Mail3(a)).Substring(2,3));
}

       2、 //输入班级人数,根据人数输入每人分数, 加十分(用到函数)

 

     public double[] FenShu(double[] score)
        {
            for (int i = 0; i < score.Length; i++)
            {
                score[i] += 10;
            }
            return score;
        }
      static void Main(string[] args)
        {
            //Console.Write("请输入班级人数:");
            //int n = int.Parse(Console.ReadLine());
            //double [] score=new double[n];
            //for (int i = 0; i < n; i++)
            //{
            //    Console.Write("第{0}个人的分数是:",i+1);
            //    score[i] = double.Parse(Console.ReadLine());

            //}
            //Console.Write("所有信息输入完成,请按回车查看!");
            //Console.ReadLine();
            //Program hanshu = new Program();
            //score= hanshu.FenShu(score);
            //foreach (double aa in score)
            //{
            //    Console.WriteLine(aa);         
            //}

            //Console.ReadLine();
          }

      3、 //猜拳
            //1 剪刀 2石头 3布
            //人-电脑 
            // 0平局
            // -1输
            //-2 赢
            //2 输
            //1 赢

       
            for (int i = 1; i > 0; i++)
            {
                Console.Write("猜拳 请输入:(剪刀,石头,布)中的一个!");
                string quan = Console.ReadLine();

                if (quan == "剪刀" || quan == "石头" || quan == "")
                {
                    int ren = 0;
                    switch (quan)
                    {
                        case "剪刀":
                            ren = 1;
                            break;
                        case "石头":
                            ren = 2;
                            break;
                        case "":
                            ren = 3;
                            break;

                    }
                    Random ran = new Random();
                    int dian = 0;
                    dian = ran.Next(1, 4);
                    switch (dian)
                    {
                        case 1:
                            Console.Write("电脑出的是剪刀!");
                            dian = 1;
                            break;
                        case 2:
                            Console.Write("电脑出的是石头!");
                            dian = 2;
                            break;
                        case 3:
                            Console.Write("电脑出的是布!");
                            dian = 3;
                            break;
                    }
                    Console.WriteLine();
                    int d = ren - dian;
                    if (d == 0)
                    {
                        Console.WriteLine("本局是平局。");
                        break;
                    }
                    else if (d == -1 || d == 2)
                    {
                        Console.WriteLine("本局你输了!");
                        break;
                    }
                    else
                    {
                        Console.WriteLine("本局你赢了!");
                        break;
                    }

                }
                else
                {
                    Console.WriteLine("您的输入有误!");

                }

            }

            Console.ReadLine();

 

posted on 2016-07-31 16:52  皮皮怪  阅读(185)  评论(0编辑  收藏  举报

导航