美文网首页
雷潮教育第一期班C#课程阶段总结(1)

雷潮教育第一期班C#课程阶段总结(1)

作者: 元宇宙协会 | 来源:发表于2017-10-29 22:08 被阅读131次

    1.基本数据类型

    • 数值类型
      • 整型 int
      • 单精度浮点型 float
      • 双精度浮点型 double
      • 更高精度数值(财务) decimal
    • 非数值类型
      • 字符 char
      • bool
      • 字符串 string


    2.变量

    1.变量的声明

    • 第一种声明方式
    // 声明一个int类型的变量
    int num;
    // 赋值,将100给了声明的num变量
    num = 100;
    
    • 第二种声明方式
    // 声明变量的同时赋值
    int num = 100;
    
    • 第三种声明方式
    // 一次性声明多个变量
    int num, num1,num2;
    num = 100;
    num1 = 100;
    num2 = 100;
    

    2.变量的命名

    • 三条规则:
    1-标识符只能由英文字母、数字和下划线组成,不能包含空格和其他字符,除@以外
    2-不能以数字开头
    3.不能用关键字当变量名
    
    • 命名的注意点

    1、给变量分配有意义的名称;
    2、命名类和方法时使用Pascal(帕斯卡)样式,命名变量使用Camel(骆驼)样式。
    3、不要通过大小写的不同来区分变量。
    4、变量(标识符)名字不适宜太长,尽量精简。

    3.变量的作用域

    • 定义:
      变量的作用域是可以访问该变量的的代码区域。
    • 作用域规则
      • 只要字段所属的类在某个作用域内,其字段也在该作用域内;
      • 局部变量的作用域只在离它最近的大括号内部
      • 在循环或类似的语句中声明的局部变量存在于该循环体内。

    4.修饰符

    修饰符

    5.屏幕输入

    Console.ReadLine();
    

    6.转换

    • 隐式转换
      自动提升类型
    float a = 1.99;
    double  b = 2.99;
    double c = a + b;
    
    • 显式转换
      强制转换类型
    int a = 10;
    double b = 19.999;
    int c = (int)(a + b);
    
    • 类型转换
    Convert
    Convert.ToInt();
    Convert.ToString();
    Convert.ToChar();
    Convert.ToDouble();
    Convert.ToInt(Console.ReadLine());
    

    7.复合数据类型

    • 枚举
    // 定义枚举,通过使用关键字enum+枚举名称{}
            enum Sex
            {
                男,
                女
            }
    
    • 结构体
     struct People
            {
                public int age;  // 每一个属性都称为结构体的成员
                public string name;
                public Sex sex;
                public float height;
    
                 void  See()
                {
                    Console.WriteLine("看我!!");
                }
            }
    
    • 接口
    • 委托
    • 数组
      • 定义
    // 第一种方式
                // int[]定义了一个整型数组类型 
                // int[6],表示存储6个整型数据的数组
                // new 就是想系统要内存,创建数组并将数组元素初始化为它们的默认值,就是0
                int[] numbers = new int[6]; // {0,0,0,0,0,0}
                numbers[0] = 50; // {50,0,0,0,0,0}
                numbers[1] = 100; // {50,100,0,0,0,0}
                numbers[2] = 101;  //{50,100,101,0,0,0}
                numbers[3] = 103;  // {50,100,101,103,0,0}
                numbers[4] = 104;  // {50,100,101,103,104,0}
                numbers[5] = 105; // {50,100,101,103,104,105}
    // 第二种方式
                int[] array1 = new int[] { 1, 3, 5, 7, 9 };
                int[] array2 = { 1, 3, 5, 7, 9 };
     // 第三种写法
                //声明一个数组变量但不将其初始化,但在将数组分配给此变量时必须使用 new 运算符。
                int[] array4;// array4 = new int[4];
                array4 = new int[] {100,20,10,20,20 };
    方法:
                 // 获取数组元素的方法
                Console.WriteLine(array4.GetValue(2));  // 0-1-2
                Console.WriteLine(array4[2]);
    
                // 修改数组中某个元素的值
                array4[2] = 100;
                array4.SetValue(100,2);
               Console.WriteLine(array4[2]);
    
                //遍历数组
                foreach (int number in array4)
                {
                    Console.WriteLine(number);
                }
    
                foreach (var item in array3)
                {
                    Console.WriteLine(item);
                }
    
                // for循环遍历数组
                for (int i = 0; i < array4.Length; i++)
                {
                    Console.WriteLine(array4[i]);
                }
    
    8.练习

    作业一:输出一个图案,如图所示

    作业二:声明一个电脑类,里面有电脑的价格,要求这个价格能够被外界访问。
    书写10遍public,private,protected,internal的定义。用自己的语言写出来

    9.运算符
    // 计算100以内的和,与10以内的乘法,计算100除以3的值,如果有余数,如何显示出来,如何四舍五入?
                // + - * % /
                int sum = 0;
                for (int i = 0; i < 100; i++)
                {
                    sum += i;
                }
                Console.WriteLine(sum);
    
                // 保存余数
                int a = 0;
    
                a = 100 % 3;
                Console.WriteLine(a);
    
                
                float result = (float)(100 / 3.0);
                string str2 = result.ToString("f2"); // 四舍五入
                string str3 = result.ToString("#0.00000"); // 四舍五入
                Console.WriteLine(str3); 
                Console.ReadKey();
    
    • ++ --
                int a = 10;
                int b = 10;
                Console.WriteLine(a++);// a = 10
                Console.WriteLine(a+b);// a = 11  result = 21
    
                Console.WriteLine(++a);// a = 12
                Console.WriteLine(a+b);// a = 12    result = 22 
    
    
                int c = 101;
                int d = 101;
                Console.WriteLine(c--); // c = 101  
                Console.WriteLine(c+d); // c = 100 201
    
                Console.WriteLine(--c); // 99
                Console.WriteLine(c+d); // 200
    // 复杂案例
                int n = 3;
                int a1 = 0;
                while (++a1 < n)
                {
                    Console.WriteLine(a1);
                }
                Console.WriteLine($"final {a1}");
                Console.WriteLine("=====");
                
                int n1 = 3;
                int a2 = 0;
                while (a2++ < n1) // 判断的时候,没有执行自加过程,因为是后加
                {
                    // a2执行了自加的过程
                    Console.WriteLine(a2);  // 1,2,3
                }
                Console.WriteLine($"final {a2}"); //4
                Console.WriteLine("=====");
    
    • 三目运算符
                int sum ;
                sum = 3 > 4 ? 3 : 4;
    
                Console.WriteLine(sum);
    
                sum = 4 > 3 ? 3 : 4;
    
                Console.WriteLine(sum);
    
                if (3 > 4)
                {
                    sum = 3;
                }
                else
                {
                    sum = 4;
                }
    
                sum = (3 > 4 ? 3 : 4);
    
    • 赋值运算符
    //-= += *= /= %=
    // 12898秒等于多少小时,多少分钟,多少秒?
    
    
    • 逻辑运算符
    // && // && “与” 表示该符号两边的语句全部正确才能进行下面的逻辑
    //  ||   // || "或" 表示该符号两边的语句只要有一方正确就可以继续进行下面的逻辑
    //  !    //! "非" 表示与该语句相反的意思
    
    • checked与unchecked运算符
     #region checked和unchecked
                byte by1 = 255; 
                checked {
    
                   // by1++; // 256
                }
                unchecked {
                    by1++;
                    Console.WriteLine(by1);
                }
    #endregion
    
    • is 、 as、
                int a11 = 10;
                object obj = 10;
                bool boo = true;
                string name = "face";
    
                boo = obj is int;
                Console.WriteLine(boo);
    
                // as 表达式1和表达式2必须是引用类型的变量或者常量
                // 引用类型 :起了一个名字来表示某件事
                // 值类型:就是存贮在内存栈空间的数值 10,20,30,
                 obj = a11 as object;   // 某个类型的值 as Object  大的可以代表小的
                 // as 必须与引用类型和Null类型的值一起使用
                 // a11 = obj as int  ; //  Object as 某个类型的值  小的不能代替大的
    
    10.流程控制
    • if语句
    // 第一种if语句
    if(条件结果必须为bool类型)
    {
    }
    // 第二种if语句
    if()
    {
    }
    else
    {
    
    }
    // 第三种if语句
    if()
    {
    }else if()
    {
    }
    else
    {
    }
    
    
    • Swich语句
                Console.writeline("请输入考试分数");
                int number = Convert.toint32(Console.Readline());
                int result = number / 10;
                switch (result)
                {
                    case 10:
                        Console.WriteLine("满分");
                        break;
                    case 9:
                        Console.WriteLine("优秀");
                        break;
                    case 8:
                        Console.WriteLine("良好");
                        break;
                    case 7:
                        Console.WriteLine("及格");
                        break;
                    default:
                        Console.WriteLine("不及格");
                        break;
                }
    
    • while循环
     while (true)
                {
                    Console.WriteLine("请输入考试分数");
                    int number = Convert.ToInt32(Console.ReadLine());
                    int result = number / 10;
                    switch (result)
                    {
                        case 10:
                            Console.WriteLine("满分");
                            break;
                        case 9:
                            Console.WriteLine("优秀");
                            break;
                        case 8:
                            Console.WriteLine("良好");
                            break;
                        case 7:
                            Console.WriteLine("及格");
                            break;
                        default:
                            Console.WriteLine("不及格");
                            break;
                    }
                }
    
    • do while循环
    do{
    // 循环体,不管条件成立不成立,先执行一次
    }
    while(条件)
    
    • 流程控制中的三个关键字: default,break,continue
    default:默认其他结果
    break:中断循环
    continue :跳过当前循环
    
    • for循环与foreach循环
     //for (int i = 0; i < 1000; i++)
                //{
                //    if (i % 100 == 0)
                //    {
                //        break; // 中断循环
                //    }
                //    Console.WriteLine("当前循环第{0}次", i);
                //}
    
    //foreach循环 第二天讲数组的时候,演示
                int[] array4;// array4 = new int[4];
                array4 = new int[] {100,20,10,20,20 };
                //遍历数组
                foreach (int number in array4)
                {
                    Console.WriteLine(number);
                }
    
    
    • 流程控制练习题
    1,编写一个程序,对输入的4个整数,求出其中的最大值和最小值,并显示出来。
    2,让用户输入两个整数,然后再输入0-3之间的一个数,0代表加法,1代表减法,2代表乘法,3代表除法,计算这两个数字的结果
    3,求出1~1000之间的所有能被7整除的数,并计算和输出每5个的和。
    4,编写一个控制台程序,分别输出1~100之间的平方、平方根。 
    5,编程输出1~100中能被3整除但不能被5整除的数,并统计有多少个这样的数。
    6,编程输出九九乘法表。
    7,一个控制台应用程序,输出1~5的平方值,要求:用for语句实现。用while语句实现。用do-while语句实现。
    8,一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
    9,一个控制台应用程序,要求完成写列功能。
        1)接收一个整数n。
        2)如果接收的值n为正数,输出1~n间的全部整数。
        3)如果接收的值n为负值,用break或者return退出程序。
        4)如何n为0的话 转到1继续接收下一个整数。
    
    11.复杂数据类型
    • 数组
      • 一维数组
      • 二维数组
      • 多维数组
      • 交错数组
    数据类型[] 数组名  = new 数据类型[存储数据类型的个数];
    数据类型[] 数组名 = {具体的值};
    // 获取一维数组元素的个数
    Console.WriteLine(数组名.length)
    // 遍历
    for(int i =0;i < 数组名.length; i++ )
    {
    Console.Write(数组名[i])
    }
    foreach(var item in 数组)
    {
    Console.Write(item)
    }
    
    // 二维数组
    数据类型[,] 二维数组名 = new 数据类型[当前数据类型的元素,数据类型元素中的元素]
    数据类型[,] 二维数组名 = {{具体的值},{具体的值(与前面的元素内部个数保持一致)}};
    // 获取二维数组的维度
    Console.WriteLine(数组名.Rank)
    // 获取二维数组中所有元素的个数
    Console.WriteLine(数组名.Length)
    遍历二维数组
    for(int i = 0; i < 数组名.Rank; i++)
    {
      for(int j = 0; j <  数组名[i].Length; j++)
      {
          Console.Write(数组名[i,j]);
      }
    }
    foreach(var item in 数组名)
    {
       Console.Write(item);
    }
    
    // 三维数组
    数据类型[,,] 数组名 = new 数组类型[当前数组名中的元素,数组元素中的元素,数组元素中元素的个数];
    数据类型[,,] 数据名 = {{{1,2,3},{3,4,5} },{{具体的值},{具体的值}},{{具体的值},{具体的值}}}
    // 获取维度
    Console.Write(数组名.Length)
    Console.Write(数据名.Rank)
    for(int i = 0; i < 数组名.Rank; i++)
    {
      for(int j = 0; j <  数组元素个数; j++)
      {
          for(int g = 0; g< 数组元素中元素的个数;g++)
          Console.Write(数组名[i,j,g]);
      }
    }
     int[,,] array3 = {
                                    {
                                        {10,11},{11,11},{12,11},{13,11}
                                    },
    
                                    {  {20,12},{21,12},{22,12},{23,12}
                                    },
    
                                    {
                                        {30,13},{31,13},{32,13},{33,13}
                                    }
                                 };
                // 获取的是数组内所有元素个数的和
                //Console.WriteLine(array3.Length);
                // 获取当前数组的维度
                //Console.WriteLine(array3.Rank);
                
                for (int i = 0; i < array3.Rank; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        for (int g = 0; g < 2; g++)
                        {
                            Console.WriteLine(array3[i, j, g]);
                        }
                    }
                }
    
                foreach (var item in array3)
                {
                    Console.WriteLine(item);
                }
    
    // 交错数组
    数据类型[][] 数组名 = new 数据类型[具体的值][];
    // 初始化
    数组名[具体的值从0开始] = new int[具体的值];
    数组名[具体的值从1开始] = new int[具体的值];
    数组名[具体的值从2开始] = new int[具体的值];
    // 赋值
    数组名[具体的值从0开始][具体的值从0开始] = 数组类型匹配的具体值如: 10;
    数组名[具体的值从0开始][具体的值从1开始] = 数组类型匹配的具体值如: 11;
    数组名[具体的值从1开始][具体的值从0开始] = 数组类型匹配的具体值如: 20;
    数组名[具体的值从1开始][具体的值从1开始] = 数组类型匹配的具体值如: 21;
    // 简化
    数据类型[][] 数组名 = {
                    子元素的初始化并赋值,
                    子元素的初始化并赋值,
                  }
     int[][] number2 = {
                    new int[]{11,22,33,55,66},
                    new int[]{101,102,103 },
                    new int[]{99}
                };
    // 包含二维数组的交错数组
    数据类型[][,] 数组名 = {
                  二维数组的初始化并赋值,
                  二维数组的初始化并赋值
                }
     int[][,] number3 = {
                    new int[,]{ {1,9,99,109,209 },{10,102,190,170,0 },{10,11,22,33,44 } },
                    new int[,]{ {999,888,777 },{333,222,111 } }
                };
    
               // 获取数组的长度
                Console.WriteLine(number3.Length);
                // 获取的是交错数组中第0位元素内的元素个数的和
                Console.WriteLine(number3[0].Length);
    
    // 遍历
                 //for (int i = 0; i < number3.Length; i++)
                //{
                //    foreach (var item in number3[i])
                //    {
                //        Console.WriteLine(item);
                //    }
                //}
    
    
    • 字符串
      • 定义
      • 拼接
      • 替换
      • 转换大小写
      • 遍历
      • 赋值
      • 判断字符串相同与否
      • 合并
      • 删除首位空白
      • 检索给定的字符串位置
      • 把一个字符串实例插入到另一个字符串实例的指定索引处

    相关文章

      网友评论

          本文标题:雷潮教育第一期班C#课程阶段总结(1)

          本文链接:https://www.haomeiwen.com/subject/rjrupxtx.html