1 复习学习方法多用多记关键字被赋予特殊含义的单词或者字符标识符所有的名字 作用同类区分 方便调用 规则不遵守 编译器报错 1 由数字字母 下换线 美元符号组成 2 不能一数字开头 3 不能是c#关键字 4 区分大小写 规范编程习惯 1 尽量增加可读性 2 不同的标识符有不同的命名规范大驼峰 小驼峰 类名 方法名 都是大驼峰 变量名 都是小驼峰 命名空间 都是小写数据类型先按数据性质分类浮点 整数 字符 布尔 再空间大小分类 byte:字节型c#描述数据的基本单位 取值[0,255] short短整型::1short2byte 取值[-30000,30000] int:整型::::::1int4byte 一个整数常量 默认是int类型 long长整型:::1long8byte long常量 后面加l/L float单精度::1float4byte 小数点有效位数是6-8 float常量 后面加f/F double双精度::1double8byte 小数点有效位数是9-12 浮动常量 默认是double类型 char字符型1char2byte char常量必须写在单引号中 有且只有一个字符 bool布尔型1bool1byte bool常量只有两个值 true false运算后结果的数据类型数据类型精度表byte-short-int(char)-long--float-double ​ 1:short byte char 不能直接运算 必须自动提升为int 2:运算后结果的数据类型 取决于精度最高的数据 ​ 1/2*3.1/1/20.02 运算符2.1 概念数据运算时 使用的符号2.2 算术运算符//1 算术运算符 //1.1已知的算术运算符 - * / //有三种含义正数、连接符、加法运算 //-有两种含义负数、减法运算 Console.WriteLine(1/2);//0 ​ //1.2 自增 --自减 int a 1; int b 2; a;//等价于aa1; a;//等价于a; a a 1; Console.WriteLine(aa); ​ byte b1 1; b1; //b1 b1 1;//左右类型不一致 b1 (byte)(b1 1);//强制类型转换把结果int类型的变量 强制转换为byte ​ //1.3 % 求余 取模 Console.WriteLine(1%3);//1 Console.WriteLine(7%3);//1 Console.WriteLine(12%3);//0 //a/b::::a是被除数 b是除数 //a%b::::正整数取值范围[0,b-1] ​ //n%mn除以m 得到一个整数 除不尽的那部分 就是结果 Console.WriteLine(7.5 % 2.1);//1.2 Console.WriteLine(7.5 % 3);//1.5 Console.WriteLine(7% 2.1);//0.7 ​ Console.WriteLine((-7)%(2));//-1 Console.WriteLine((-7) % (-2));//-1 Console.WriteLine((7) % (-2));//1 ​ //一堆桃子n 分给一群猴子m n/m余数是被除数的一部分 //余数的正负 取决于被除数2.3 比较运算符比较运算符结果是bool//2 比较运算符 //2.1 已知的比较运算符 //2.2 新的比较运算符!不等于 恒等于 // ! 判断两边是否不等 判断两边是否相等 bool b1 1 2; int a 1; int b 2; bool n2 a b; ​ //一次定义多个同类型 int c 1, d 2, e, f 3; ​ //注意比较运算符 操作的两个数据类型必须一致 //Console.WriteLine(12 成立吗12); Console.WriteLine(12 成立吗 (1 2)); Console.WriteLine(1!2 成立吗 (1 ! 2)); //注意 只能操作数字类型的数据 // ! 可以操作所有类型 Console.WriteLine(true false);2.4 赋值运算符//3 赋值运算符 //3.1 已知的赋值运算符 //注意赋值运算符的优先级 低于算术运算符和比较运算符 int aa 1; int bb aa 1; bool n3 1 2; //3.2 新的赋值运算符 * / % - a 1; a 2;//等价于aa2; 简化写法 Console.WriteLine(aa);//a3 //注意 byte b0 1; b0 1;//完全等价于 b0(byte)(b01); //b0 b0 1;2.5 逻辑运算符//4 逻辑运算符 // 多个条件之间进行逻辑判断是不是都成立 是不是都不成立 是不是有成立的 //逻辑运算符 与 || 或 ! 非 //逻辑运算符 只能操作bool类型的数据 //逻辑运算符 结果也是bool类型的数据 ​ Console.WriteLine(判断12和32是不是都成立(12 32)); Console.WriteLine(测试 与只要有一个false结果就是false); Console.WriteLine(true true::: (true true));//true Console.WriteLine(true false::: (true false)); Console.WriteLine(false true::: (false true)); Console.WriteLine(false false::: (false false)); ​ Console.WriteLine(测试|| 或只要有一个true结果就是true); Console.WriteLine(true || true::: (true || true)); Console.WriteLine(true || false::: (true || false)); Console.WriteLine(false || true::: (false || true)); Console.WriteLine(false || false::: (false || false));//false ​ Console.WriteLine(测试 取反); Console.WriteLine(!true:::!true); Console.WriteLine(!false::: !false);2.6 位运算符仅了解//位运算了解 //了解基本用不到难 //位运算 操作的是数字的二进制 1是true 0是false //1 位运算与两个操作数字的对应位进行逻辑与 //2 | 位运算或两个操作数字的对应位进行逻辑或 //3 ^ 位运算异或两个操作数字的对应位 相同为false 不同为true int a 17, b 5; Console.WriteLine(位运算与a b (a b));//1 Console.WriteLine(位运算或 a | b (a | b));//21 Console.WriteLine(位运算^ a ^ b (a ^ b));//20 ​ //4 位运算左移 //5 位运算右移 b 2; //17 2 就是 17 / 4 //17 2 就是 17 * 4 Console.WriteLine(左移 a b (a b));//68 Console.WriteLine(右移 a b (a b));//42.7 三元运算符//三元运算符 //格式bool值?值1:值2 //结果bool值为ture 结果是 值1 为false 结果是值2 int c 1, d 2; int e c b ? 3 : 4;//cb成立 e3 否则 e4 ​ //可以在两个值之间进行选择 int max c d ? c : d;//取大值 ​ int min c d ? d : c;//取小值 ​ //尝试获取三个值中的大值 int f 9; int max2maxf? max : f; max2 (c d c f) ? c : (d f ? d : f); max2 (c d) ? (c f ? c : f) : (d f ? d : f);3 数据类型转换//数据类型精度表 byte - short - int(char) - long -float -double //数据类型转换 //1 自动类型转换(隐式转换)把级精度数据 赋值给 高精度变量 // 格式 高精度变量低精度数据; float f1 1;//左边是float变量 右边1是int值 两边类型不一致 不会直接赋值 //编译器会自动把int常量值1 转化为 float常量值1.0f 赋值成功 byte b1 1; int i1 b1;//左边是int变量 右边是byte值 类型不一致 不会直接赋值 //编译器 自动把byte值1 转化为int类型的值1 //byte类型的1 00000001 //int类型的1 00000000 00000000 00000000 00000001 //类型一致 然后赋值 ​ //2 强值类型转换显式转换把高精度数据强制转化为低精度类型数据 // 格式 低精度变量(低精度变量的类型)高精度数据; // 注意强制类型转换 可能出现数据丢失 i1 (int) 1.1111; ​ i1 (byte)(1.1);//1 把double类型的数据1.1 强制转化为byte类型的数据1 // 2 编译器把byte类型的数据1 自动转换为int类型的1 然后才赋值 ​ i1 (char)(11.1);//1 查编码表获取字符1 对应的整数49 //2 拿49与1.1运算 得到50.1 //3 强制转化为字符2 //查编码表 字符2 对应的整数是50 然后赋值 i1 300; byte b2 (byte)i1; ​ Console.WriteLine(b2b2);//444 流程控制4.1 概念通过关键字控制代码的执行流程 默认执行顺序 //默认执行流程从左到右 从上到下 Console.WriteLine(11); Console.WriteLine(12); Console.WriteLine(13); Console.WriteLine(14);4.2 选择结构概念根据条件选择执行对应的代码块形式1if-else//选择结构之ifelse //格式单分支 /* if(bool表达式){ 条件成立时 执行的代码块 } */ int age 38; //判断是否是成年人 if (age 18) { Console.WriteLine(ageage:::成年人); } ​ if (age 18) { Console.WriteLine(age age :::未成年人); } ​ //双分支 /* if(bool表达式){ 条件成立时 执行的代码块 }else{ 条件不成立时 执行的代码块 } */ if (age 18) { Console.WriteLine(age age ::::::::成年人); } else { Console.WriteLine(age age ::::::::未成年人); } ​ //多分支 /**/ ​ float score 91; if (score 100 || score 0) { Console.WriteLine(score score ,无效分数); } else if (score 60)//隐藏条件 score 0 score 100 { Console.WriteLine(score score ,不及格); } else if (score 70 )//隐藏条件 score 60 score 100 { Console.WriteLine(score score ,及格); } else if (score 80) { Console.WriteLine(score score 良好); } else //隐藏条件 score 80 score 100 { Console.WriteLine(score score 优秀); } ​ //获取键盘的输入 Console.WriteLine(请输入我的分数); //System.FormatException:“输入字符串的格式不正确。” float score2 float.Parse(Console.ReadLine());//从键盘获取一个float //int score0 int.Parse(Console.ReadLine()); // double score1 double.Parse(Console.ReadLine()); //string sex Console.ReadLine(); Console.WriteLine(输入的分数是score2);形式1 练习//1 根据输入的性别 判断是美女还是帅哥 Console.WriteLine(请输入你的性别); string sex Console.ReadLine(); if (sex 男) //比较运算符 是赋值运算符 { Console.WriteLine(性别是 sex ::称呼是帅哥); } else { Console.WriteLine(性别是 sex ::称呼是美女); } ​ //2 根据输入的月份 打印 季节3 4 5 春 6 7 8 夏 9 10 11 秋 12 1 2 冬 Console.WriteLine(请输入月份); int month int.Parse(Console.ReadLine()); if (month 0 || month 12) { Console.WriteLine(month month ,对应的季节是火星季); } else if (month 3 month 5) { Console.WriteLine(month month ,对应的季节是春季); } else if (month 6 || month 7 || month 8) { Console.WriteLine(month month ,对应的季节是夏季); } else if (month 9 month 11) { Console.WriteLine(month month ,对应的季节是秋季); } else { Console.WriteLine(month month ,对应的季节是冬季); } ​ //3 根据输入的性别和年龄 判断称呼 // 小女孩 美女 阿姨 奶奶 // 小男孩 帅哥 叔叔 爷爷 ​ Console.WriteLine(请再次输入你的性别); sex Console.ReadLine(); Console.WriteLine(请输入你的年龄); int age int.Parse(Console.ReadLine()); if (sex ! 男 sex ! 女) { Console.WriteLine(sex sex ,age age ::性别无效); } else if (age 0 || age 130) { Console.WriteLine(sex sex ,age age ::妖精); } else if (sex 男 age 18) { Console.WriteLine(sex sex ,age age ::称呼:::小男孩); } else if (sex 男 age 35) { Console.WriteLine(sex sex ,age age ::称呼:::帅哥); } else if (sex 男 age 60) { Console.WriteLine(sex sex ,age age ::称呼:::叔叔); } else if (sex 男) { Console.WriteLine(sex sex ,age age ::称呼:::爷爷); } else if (age 18) { Console.WriteLine(sex sex ,age age ::称呼:::小女孩); } else if (age 35) { Console.WriteLine(sex sex ,age age ::称呼:::美女); } else if (age 60) { Console.WriteLine(sex sex ,age age ::称呼:::阿姨); } else { Console.WriteLine(sex sex ,age age ::称呼:::奶奶); } ​ //1 输入一个年 判断是闰年 //闰年1900可以被4整除 但不能被100整除 // 可以被400整除 Console.WriteLine(请输入你的年); int year int.Parse(Console.ReadLine()); if ((year % 400 0) || (year % 4 0 year % 100 ! 0)) { Console.WriteLine(year year ,:::闰年); } else { Console.WriteLine(year year ,:::平年); } ​ //2 获取一个三位数各个位数的值 Console.WriteLine(请输入一个三位数); int n int.Parse(Console.ReadLine()); //一个数 % 10 就是其个位数 //123 /1 123 % 10 3 //123 /10 12 % 10 2 //123 /100 1 % 10 1 int a n / 1 % 10; int b n / 10 % 10; int c n / 100 % 10;//12 //水仙花数1 必须是三位数 2 各个位数的值的三次方之和等于此数 //1531*1*15*5*53*3*3112527153 //要获取什么 就 定义变量记录什么 //定义变量记录abc三次之和 if (n 100 n 1000) {//判断是不是三位数 int sum a * a * a b * b * b c * c * c; if (sum n)//判断三次方之和是不是等于此数 { Console.WriteLine(n n ,是水仙花数); } else { Console.WriteLine(n n ,不是水仙花数); } } else { Console.WriteLine(n n ,不是三位数); } //代码格式对齐 缩进形式2swicth4.3 循环结构根据条件循环执行对应的代码块4.4 跳转代码块之间的跳转