C#自学笔记_005_Real

C#自学笔记_005_Real

方法(函数)
ref参数
params参数
小练习

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Csharp005
{
    class Program
    {
        static void Main(string[] args)
        {
            
            //1、方法中的ref参数:
            //能够讲一个变量带入一个方法进行改变,改变完成后,再将改变的值带出方法
            //ref参数要求在方法外就必须为其赋值,而方法内可以不赋值!!
            //封装一个方法,使其两个整数变量进行交换
            int n1 = 10;
            int n2 = 20;
            Program.Temp(ref n1, ref n2);
            Console.WriteLine(n1);
            Console.WriteLine(n2);

            //2、方法的params参数
            //将实参列表中,跟可变参数数组类型一致的元素都当做数组的元素去处理
            //params可变参数必须是形参列表是参数列表中的最后一个元素
            //形参列表最多只能有一个params可变参数
            //练习1:求张三成绩的总成绩
            //int[] score1 = { 98, 76, 89, 98, 95, 92, 90, 100, 65, 86, 92, 95 };
            Program.Test01("张三", 98, 76, 89, 98, 95, 92, 90, 100, 65, 86, 92, 95);


            //3、方法的重载
            //概念:方法的名称相同,但是参数列表不同,参数不同分为两种情况:
            //(1)如果参数的个数相同,那么参数的类型就不能相同
            //(2)如果参数的类型相同,则参数的个数就不能相同
            //注意:方法的重载跟返回值没有关系
            //例子(方法见下面)            
            M(10, 20);
            M(10, 20, 30);
            M("xlz", "NB");

            //4、方法的递归
            //按f11进行调试以更好理解递归的过程!!
            TellStory();

            //5、练习1:封装一个方法,是诶能够输出数组的平均值,并且保留两位小数
            double[] nums3 = { 12, 23, 34, 64, 76, 4, 32, 5, 3.25, 23, 21, 23 };
            double avg1 = Program.Avg(nums3);
            Console.WriteLine("{0:0.00}", avg1);

            //6、练习2:写一个方法,用来判断用户输入的数字是否为质数,
            //再写一个方法,需要用户只能输入数字,输入有误就一直输入
            Console.WriteLine("请输入一个整数,我们将判断它是不是质数:");
            string str6 = Console.ReadLine();
            int num6 = Program.GetInt(str6);
            Program.ZhiShu(num6);


            Console.ReadKey();

        }
        /// <summary>
        /// 交换两个变量的数值(ref参数练习)
        /// </summary>
        /// <param name="num1">第一个整数变量</param>
        /// <param name="num2">第二个整数变量</param>
        public static void Temp(ref int num1, ref int num2)
        {
            int temp;
            temp = num1;
            num1 = num2;
            num2 = temp;
        }

        /// <summary>
        /// 计算学生的总成绩(params参数练习)
        /// </summary>
        /// <param name="name">学生姓名</param>
        /// <param name="score">学生各科分数</param>
        public static void Test01(string name, params int[] score)
        {
            int sum = 0;
            for (int i = 0; i < score.Length; i++)
            {
                sum += score[i];
            }
            Console.WriteLine("{0}本次考试的总成绩为:{1}", name, sum);
        }

        /// <summary>
        /// 用于方法重载的三个练习方法
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        public static void M(int a, int b)
        {
            int sum = a + b;
        }
        public static void M(int a, int b, int c)
        {
            int sum = a + b + c;
        }
        public static void M(string a, string b)
        {
            string sum = a + b;
        }

        public static int i = 0;
        public static void TellStory()
        {
            Console.WriteLine("从前有座山");
            Console.WriteLine("山上有座庙");
            Console.WriteLine("庙里有个老和尚给小和尚讲故事");
            Console.WriteLine("讲的是");
            i++;
            if (i >= 10)
            {
                return;
            }
            TellStory();
        }

        /// <summary>
        /// 计算数组的平均值
        /// </summary>
        /// <param name="nums">输入的数组</param>
        /// <returns></returns>
        public static double Avg(double[] nums)
        {
            double sum = 0;
            for (int i = 0; i < nums.Length; i++)
            {
                sum += nums[i];
            }
            return (sum / nums.Length);
        }
        /// <summary>
        /// 判断输入的数字是否为质数
        /// </summary>
        /// <param name="s">输入的数字字符串</param>
        public static void ZhiShu(int num)
        {
            for (int i = 2; i < num; i++)
            {
                if (num % i == 0)
                {
                    Console.WriteLine("{0}不是质数。", num);
                    return;
                }
            }
            Console.WriteLine("{0}是质数。", num);
        }
        /// <summary>
        /// 判断已输入的内容是否能转换成整数型
        /// </summary>
        /// <param name="s">输入的字符串</param>
        /// <returns></returns>
        public static int GetInt(string s)
        {
            while (true)
            {
                try
                {
                    int num = Convert.ToInt32(s);
                    return num;
                }
                catch
                {
                    Console.WriteLine("只能输入整数,请重新输入:");
                    s = Console.ReadLine();
                }
            }
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仲子_real

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值