常用快捷键
快速对齐代码 Ctrl+K+D 出现语法错误时不能对齐,只能先生成解决方案再对齐
保存 Ctrl+S
快速弹出智能提示 Ctrl+J
光标出现在文档最后 End 想要选中这一行 Shift+Home
光标出现在文档最前 Home 想要选中这一行 Shift+End
选中多行则按上下箭头
注释所选代码 Ctrl+K+C
取消对所选代码的注释 Ctrl+K+U
转到帮助文档 F1
折叠冗余代码 #Region(可备注) 和 #EndRegion
变量
是什么
用来在计算机当中存储数据
存储变量的语法
变量类型 变量名;
变量名=值;
//官方语言:声明或定义了一个int 类型的变量
int number; //在内存中开辟了一块能够存储整数的空间
//官方语言:给这个变量进行赋值
number = 100; //表示把100存储到了这块空间内
简写形式 **声明并且给变量赋值
变量类型 变量名=值;
int** n = 100;
变量的几种类型
| 变量类型 | 规则 | 举例 |
|---|---|---|
| int整数类型 | 只能存储整数 | int num=10; |
| double小数类型 | 既能存储整数,也能存储小数 (小数点后15-16位数) |
double a =1; double b= 1.5; |
| string字符串类型/羊肉串 | 用来存储多个文本,也可以存储空 值必须被英文半角双引号引起来 |
string zsName = “张三”; string s = “”; //可以存储 空 string的首字母大写String就是 类 |
| char字符类型/羊肉 | 只能存单个字符 值必须被英文半角单引号引起来 |
char gende = ‘男’; 不能存 空 |
| decimal金钱类型 | 用来存储金钱,值后需要加一个m | decimal money = 5000 m; |
| bool布尔类型 | 用来描述对或错 只有两个值:True、False |
bool b = 1500 > 1; Console.WriteLine(b); Console.ReadKey(); 结果:True |
变量的使用规则
如果你要使用变量的话,应该要先声明 再赋值 再使用。
变量的命名规则
*首先要保证的就是这个变量的名字要有意义**。
- 现阶段给变量起名字的时候都以字母开头
- 后面可以跟任意“字母”、数字、下划线.
注意:
- 你起的变量名不要与c#系统中的关键字重复.
- 在c#中,大小写是敏感的. HTML≠html
- 同一个变量名不允许重复定义(先这么认为,不严谨)
给变量起名字的时候要满足两个命名规范:
1、Camel 骆驼命名规范。要求变量名首单词的首字母要小写,其余每个单词的首字母要大写。
多用于给变量命名。highSchoolStudent
2、Pascal 命名规范:要求每个单词的首字母都要大写,其余字母小写。多用于给类或者方法命名。HighSchoolStudent
波浪线
红色波浪线:代码出现了语法错误
绿色波浪线、警告线:语法没有错误,只是提示你有可能,但是不一定出现错误
异常/bug
语法上并没有任何错误,只不过在程序运行的期间,由于某些原因出现了问题,使程序不能再正常的运行。
符号
注释符
赋值运算符
=:表示赋值的意思,表示把等号右边的值,赋值给等号左边的变量。
赋值表达式:由等号连接的表达式。
注意
每个表达式我们都可以求解除一个定值,对于赋值表达式而言,等号左边的变量的值,
就是整个赋值表达式的值。 int number=10;
+号的作用
- 连接:当+号两边有一边是字符串的时候,+号就起到连接的作用。
string name = "李四";Console.WriteLine("你好,"``+name``);Console.ReadKey();
输出:你好,李四
- 相加:两边是数字的时候
Console.ReadLine(5+5); | Console.ReadLine(5+``"``5``"``); Console.ReadKey(); | Console.ReadKey();
输出:10 输出:55
占位符
使用方法:先挖个坑,再填个坑。
int n1 = 10;int n2 = 20;int n3 = 30;Console.WriteLine("第一个数字是``{0}``,第二个数字是``{1}``,第三个数字是``{2}``",n1,n2,n3);
Console.ReadKey(); 占位符的顺序从0开始
使用占位符需要注意的地方:
1、你挖了几个坑,就应该填几个坑,如果你多填了,没效果。
如果你少填了,抛异常。
2、输出顺序:按照挖坑的顺序输出。
转义符
转义符指的就是一个’\’+一个特殊的字符,组成了一个具有特殊意义的字符。
\n 表示换行
\” 表示一个英文半角的双引号 Console.WriteLine("我想在这句话中输出英文半角``\"\"``的双引号");
\t 表示一个tab键的空格string name1 = "张三";string name2 ="李敏镐西都敏俊西老赵西";string name3 ="不爱抽不舒服斯基";string name4 = "井边溪上床下枕头边君";Console.WriteLine("{0}``\t\t\t``{1}");Console.WriteLine("{0}``\t``{1}");Console.ReadKey();
\b 表示一个退格键,放到字符串的两边没有效果。Console.WriteLine("学习编程有用么?``\b``学了不一定会,会了不一定能找到工作,找到工作不一定能买的起房子,买得起房子不一定娶得到老婆,取的起老婆不一定生的了孩子,生的了孩子不一定是你的");
\r\n windows操作系统不认识\n,只认识\r\n
\ 表示一个\
@符号
- 取消\在字符串中的转义作用,使其单纯的表示为一个’\’
char c = '\b'; //\在里面起到了转义的作用char c = 'bb'; //报错,字符太多
- 将字符串按照编辑的格式输出
Console.WriteLine("``@今天天气好晴朗处处好风光``");Console.ReadKey();
在表示路径的时候都用@符号
算数运算符
二元运算符(加 减 乘 除 余)
- / %
需要两个或以上才能完成运算的操作符
- / %
练习
某学生三门课成绩为:语文90,数学80,英语67,编程求总分和平均分int chinese = 90;int math = 80;int english = 67;Console.WriteLine("总成绩是{0},平均成绩是{1}",chinese+math+engilish,``**(chinese+math+english)/3**``);Console.ReadKey();
不用变量来存储总分和平均分,因为占内存
变量越少越好
参与运算的操作数都是整数类型,就算结果有小数,显示出来也是整数
一元运算符(++—)
只需要一个操作数(number)就能完成的运算

int number = 10;it result = 10 +number++;
意思是
//int result = 10 + number;
//number++;
int number = 10;it result = 10 +++number;
意思是
//number++;
//int result = 10 + number;
练习int a = 5 ;
`int b = a++ ``+++a*2+--a `**`+`**` a++;`<br />**// 5,a=6 7,a=7 6,a=6 7,****a=7 **<br />**// b= 5 + 7*2 +6 + 7=31 **<br />`Console.WriteLine("a");`<br />`Console.WriteLine(“b”);<br />Console.ReadKey();`
如果在一个表达式中,既有一元运算符,又有二元运算符,首先计算一元运算符(相当于数学自带括号)
**
优先级
先乘除,后加减,有括号先算括号里,相同级别从左至右运算
小括号可以无限制的套用,但是一定要成对出现
复合赋值运算符
类型转换
要求
等号两边参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生自动类型转换/隐式类型转换。
隐式类型转换/自动类型转换
条件
1、两种类型相兼容 int 和 double(都是数字类型)
2、小的转成大的(取值范围) int → double
例如
int number= 10;double d = number;
显示类型转换/强制类型转换:丢失精度
条件
1、两种类型相兼容 int 和 double(都是数字类型)
2、大的转成小的(取值范围) double→int
语法
(待转换的类型)要转换的值;
例如
double d = 363.3;int n =``(int)d``;Console.WriteLine("n");Console.ReadKey();
总结
自动类型转换:int——>double
显示类型转换:double—->int
表达式中的类型转化
如果一个操作数为double类型,则整个表达式可提升为double型
int n1 = 10;int n2 = 3;double d = n1 / n2; //结果输出是3,右边得到的是整型3,赋值给d也还是整型Console.WriteLine(d);Cosnole.ReadKey();
int n1 = 10;int n2 = 3;double d = n1 ``* 1.0`` / n2; //结果输出是3.n个3Console.WriteLine(d);Cosnole.ReadKey();
double`` n1 = 10; //n1是double类型int n2 = 3;double d = n1 / n2; //结果输出是double类型Console.WriteLine(d);Cosnole.ReadKey();
int n1 = 10;int n2 = 3;double d = n1 ``* 1.0`` / n2; Console.WriteLine(``"{0:0.00}"``,d); //保留小数点后两位Cosnole.ReadKey();
Convert
类型不兼容时,比如string与int 或者 string与double
这个时候我们可以使用一个叫做Convert的转换工厂进行转换
条件:面上要过得去,123abc转不成数字型(异常)
string→double
string s = "123";double d = Convert .ToDouble(s);Console.WriteLine(d);Console.ReadKey();
string→int
string s = "123";int d = Convert .ToInt32(s);Console.WriteLine(d);Console.ReadKey();
练习
让用户输入姓名,语文,数学,英语三门课的成绩,然后给用户显示,XX你的总成绩为XX分,平均成绩为XX分
**Console.WriteLine("请输入你的姓名:");string name = Console.ReadLine();Console.WriteLine("请输入你的语文成绩:");string strChinese = Console.ReadLine();Console.WriteLine("``请输入你的数学成绩:``");string strMath = Console.ReadLine();Console.WriteLine("``请输入你的英语成绩:``");string strEnglish = Console.ReadLine();double chinese = Convert.ToDouble(strChinese);double math = Convert.ToDouble(strMath);double english = Convert.ToDouble(strEnglish);double sum = chinese + math + english;double avg = sum / 3; //整体是double类型,结果也是double类型
//由于字符串直接用+号的话,最终会变成连接的形式
//在需要拿字符串类型进行运算时,需要先将字符串类型转换为数字型Console.WriteLine("{0}你的总成绩为{1}分,平均成绩为{2}分",name,sum,avg);Console.ReadKey();
关系运算符
用来描述两个事物之间的关系
<
>=
<=
==
!=
关系表达式:由关系运算符连接的表达式
bool b = 20 ==20;Console.WriteLine(b);Console.ReadKey(); //结果:True
逻辑运算符
&&与
||或
!非
逻辑运算符两边放的一般都是关系表达式或者bool类型的值
5>3 && true 整体都对的时候就是true
3>5 || false
逻辑表达式的结果同样也是bool类型
逻辑表达式:与逻辑运算符连接的表达式


