C#学习笔记 06.01

C#学习笔记 06.01

(学习视频来自bilibili的传智播客赵老师基础教学视频)

排序

冒泡排序(一个经典方法)

方法上讲,就是比较两个相邻的,如果大小关系不是升序就交换,这样一来,每循环一次,就会有一个最大的数被排在最后,从而在循环结束的时候实现升序排序的目的。

        static void Main(string[] args)
        {
            int temp;
            int[] a = { 15, 5, 8, 4, 2, 3, 5, 7 };
            for (int i = 0; i < a.Length-1; i++)
            {
                for (int j = 0; j < a.Length-i-1; j++)
                {
                    if (a[j]>a[j+1])
                    {
                        temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                    }
                }
            }
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }
            Console.ReadKey();

现成的排序方法

但是实际用的时候肯定是不用这么麻烦的,有一个大佬们写好了的函数(方法)
Array.Sort(数组)将一个数组升序排列
Array.Reverse(数组)将一个数组降序排列
所以想降序排列可以先升序再反转。

方法

当一个功能需要多次实现的时候,我们就可以考虑用方法实现,当需要的时候直接调用即可。
public static 返回值类型 方法名(参数)
public 表示是公开的
static 表示是静态的
如果没有返回值,那么返回值类型是 void
方法可以不需要参数,但是括号是一定要有的

当我们不知道一个方法怎么用的时候就别打全了,提示的左上角是返回值,括号中是参数。

return

在方法中进行返回值,也可以立即结束当前方法(这也很好理解,都返回值了,这个方法也就结束了)

全局变量(静态字段)

如果我们在写下方法的类中声明了静态字段,那么这个字段将可以被该类下的所用方法使用。

注意事项
  1. 方法功能一定要单一
  2. 在方法中尽量避免出现提示用户输入的代码
    因为方法要有一定的通用性,在保证通用性的同时,需要牺牲一些多样性。。。大概酱。。。
out参数

因为 return 这个只能返回一个返回值,out参数就是用来返回多个值用的。
声明方法的时候,在参数列表中加 out 关键字修饰的变量,被 out 修饰的变量就是方法的返回值。
上例子:

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

namespace _11_FangFa
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] nums = { 1, 5, 44, 6, 7, 7, 5, 4, 635, 4, 5, 48 };
            int max, min, sum;
            double pingjun;
            GetTeZhengZhi(nums,out max,out min,out sum,out pingjun);
            //值得注意的是,我们在调用方法的时候也需要加 out 来修饰变量。
            Console.WriteLine("数组最大值是{0},最小值是{1},和是{2},平均值是{3}", max, min, sum, pingjun);
            Console.ReadKey();
        }

        public static void  GetTeZhengZhi(int[] nums,out int max,out int min,out int sum,out double pingJun)
        {
            min = nums[0];
            max = nums[0];
            sum = 0;
            for (int i = 0; i < nums.Length; i++)
            {
                max = max < nums[i] ? nums[i] : max;
                min = min > nums[i] ? nums[i] : min;
                sum += nums[i];
            }
            pingJun = ((double)sum) / nums.Length;
            //这里之所以需要显式转换是因为两个int相除默认结果是int,会丢精度的。。。
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值