黑马程序员.net基础四

来源:互联网 发布:华为it产品线云计算 编辑:程序博客网 时间:2024/05/23 01:12
<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


 语法:const 类型 常量名=常量值

  const double PI=3.14

(注意:常量只能在初始化时赋值,其他时候不允许修改)

常量的好处:在程序中使用常量至少有3个好处:

     A.常量用易于理解的清楚的名称替代了含义不明确的数字或字符串,使程序更易于阅读。

     B.常量使程序更易于修改。例如,在C#程序中有一个SalesTax常量,该常量的值为6%。如果以后销售税率发生变化,把新值赋给这个常量,就可以修改所有的税款计算结果,而不必查找整个程序,修改税率为0.06的每个项。

    C.常量更容易避免程序出现错误。如果要把另一个值赋给程序中的一个常量,而该常量已经有了一个值,编译器就会报告错误。

 

枚举:我们自己定义的一种类型,并且在定义这种类型的时候,我们要指定这个类型的所有值

 (1.语法:enum 自己起的类型名称{1,值2,值3……值n}

      (注意:枚举类型一般和类定义在同一个级别

       自己定义性别,里边只有男和女两个值

            enum Gender {男,} //定义Gender枚举类型

            Gender sex;  //定义一个变量,它的类型是枚举类型

            sex = Gender.男;

            switch (sex)

            {

                case Gender.男 :Console.WriteLine("男性");break;

                case Gender.女 : Console.WriteLine("女性"); break;

            }

      此时输出的是:男性

注意:枚举的定义,一般和类定义在同一级别,在同一个命名空间下,所有类就可以使用这个枚举了。定义枚举时,值的类型不能为int类型!

(2).作用:

          限制用户不能随意赋值,只能在定义枚举时列举的值中选择

          不需要死记每一个值是什么,只需要选择相应的值

(3).枚举可强转成int类型

       假设Console.WriteLine(sex)的结果是男

          Console.WriteLine((int)sex)的结果是0

         因为:枚举的值在定义的时候是有一个默认编号的,编号从0开始。所以系统默认男为0,女为1

(4)将string类型换成枚举类型

     语法:(自己定义的枚举类型)(Enum.Parse(typeof(定义的枚举类型),待转换的字符串))

      定义一个身份的枚举类型,让用户输入自己的身份,然后再输出枚举类型

            enum status {学生,工人,军人,老师}//创建枚举类型

            status person; //定义一个枚举类型的变量person

            Console.WriteLine("请输入您的身份(工人或老师或学生)");

            try 

            {

                string strPerson = Console.ReadLine(); // 等待用户输入

                person=(status)(Enum.Parse(typeof(status),strPerson));

                Console.WriteLine("您输入的身份是{0}",person);           

            }

         catch {

              //当输入的字符串内容不是工人,老师,学生其中一个时,将会提示错误

                Console.WriteLine("您输入有误");             }

 结构:

存储n个人的信息

      语法: 访问修饰符 struct 结构名

              {

                定义结构成员

              }

 

      在结构中定义变量,前面必须用public修饰。

定义好结构后,就可以直接声明相应的变量,声明好变量后可以通过变量名.结构名,来访问结构成员。

数组:可以帮我们一次声明多个同类型的变量,这些变量是在内存中连续存储的

 (1)语法:数据类型[] 数组名=new 数据类型(数组长度)

        int[] score=new int[100]

 (2)如何访问数组:通过下标来访问数组:数组名[编号]

        要想第一个元素赋值为score[0]=3

 (3)Int类型的数组一旦被声明,里边的每一个元素被初始化为0

 (4)通过数组名.Lengh可以获得数组的长度

 (5)int[] nums={5,3,8}; 等价于int[] nums=new int[]{5,3,8}

   定义了一个数组长度为3nums数组,    nums[0]=5,nums[1]=3,nums[2]=8

 (6)求一个数组中的最大值、最小值以及总和

             int[] score = { 1, 2, 3 };

            int sum =0;

            int max = score[0];

            int min =score[0];          

          for (int i = 0; i < score.Length; i++)

            {

              if (score[i] > max) //将第i个元素和max比较,若是>,则把值赋给max

                {

                    max = score[i];

                }

                if(score[0]将第i个元素和min比较,若是<</FONT>,则把值赋给min

                {

                    min=score[i];

                }

                sum += score[i]; 

            }

            Console.WriteLine("最大值为{0},最小值为{1},和为{2}",max,min,sum);

(7)冒泡排序(小诀窍:若是需要从小大大输出,则交换时的控制条件为>,反之)

           int[] num = { 11, 22, 33, 12, 23, 45, 88, 3, 4 };

          for (int i = 0; i < num.Length - 1; i++) //控制趟数,共有num.Length-1

            {

              for (int j = 0; j < num.Length - 1 - i; j++) //控制次数,数组的下边是从0开始

                {

                    if (num[j] > num[j + 1])  //按从小到大排序,交换值

                    {

                        int temp;

                        temp = num[j];

                        num[j] = num[j + 1];

                        num[j + 1] = temp;

                    }

                }

             } 

            for (int i = 0; i < num.Length; i++) //遍历输出

            {

                Console.WriteLine(num[i]);

            } 

 

5.变量的作用域:

1)在方法中定义的变量称为局部变量,其作用域从定义开始,到其所在的大括号结束

2)一个变量一旦定义在方法外,就叫做类的字段,这个变量可以被本类的所有方法访问;静态方法只可以访问静态字段,非静态方法可以访问静态字段和非静态字段

         static void Main(string[] args)

        {

            {

                int ss;

            }

        }此时除了里边的那层括号,变量ss就不能够再使用了

 


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

原创粉丝点击