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

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);
            //    }
            //}

  • 字符串
    • 定义
    • 拼接
    • 替换
    • 转换大小写
    • 遍历
    • 赋值
    • 判断字符串相同与否
    • 合并
    • 删除首位空白
    • 检索给定的字符串位置
    • 把一个字符串实例插入到另一个字符串实例的指定索引处
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容