文章目录
第二章C#语法基础
2-1C#中的关键字
- 关键字,是一些被C#规定了用途的重要单词。
- 在Visual Studio的开发环境中,关键字被标识为蓝色,下图代码中,用红方框圈出的单词就是关键字。
- 关键字 class ,这个关键字的用途是声明类。比如上面例子中,类名叫做Program。
- 关键字 namespace ,这个关键字的用途是声明“命名空间”。比如上面例子中,命名空间叫做MyApp1。
- 关键字 using ,这个关键字的用途是导入命名空间。比如这句:using System.Text; 作用是导入System.Text命名空间中的类。
- 关键字 static (静态的)、 void (无返回值)、 string (字符串类型)。常常在Main()方法的声明中看到: static void Main(string[] args)
- Main() 方法是 C# 中的特殊方法,是程序的入口,就是说,如果没有 Main ()方法,程序就无法启动。
注意:你会发现,所有关键字都是由小写字母组成的,C#语言中,大小写是严格区分的。
2-2C#的注释
- 注释,是代码中的一些“说明性文字”。注释本身不会参与程序的编译和运行,仅仅供程序员阅读。
- 注释分为:单行注释、多行注释、文档注释。
单行注释的符号是2条斜线(请注意斜线的方向),2条斜线右侧的内容就是注释,左侧的代码不会受影响。
多行注释以“/”开始,以“/”结束,之间的内容就是注释,可以包含多行。
文档注释写在类、方法或属性(以后会学到)的前面,它的符号是3条斜线“///”。
2-3练习题
2-4C#的常量
常量,顾名思义,就是“不会改变的量”。
我们平时书写的数字(比如12.85)、字符(比如’F’)、字符串(比如"谢谢"),它们都属于“字面常量”。
有一些常量既重要又容易出错,比如圆周率π的值为3.1415926…,所以,我们常常会使用自定义常量。请看下面的代码:
需要解释2个关键字:** const **关键字,表明PI是一个常量; **double **关键字,表明PI的类型为“双精度浮点型”(一种精度很高的数字类型)。
你会发现,这段代码中使用了2次圆周率(周长、面积),但是因为使用自定义常量,所以字面常量3.1415926只书写了一次。这样做避免了重复书写导致的错误。
运行效果:
还有一点要特别注意:v常量在声明时赋值,之后是不能修改的。
2-5C#的变量
- 变量能够存储数据,并且与常量不同,变量存储的数据可以修改。
- 使用变量分为3步:声明、赋值、使用。
- 声明变量的语法:数据类型 变量名;
- 给变量赋值的语法:变量名=值.
2-6 练习题
2-7 算法——交换
上次我们学习了变量。这次我们将了解,怎样将2个变量的值交换。
交换2个变量的值,引入中间变量
引例:
这种解决实际问题的步骤就叫做“算法”,交换就是最常用的一种算法。
2-8 编程练习
假设a、b两个变量交换值,需要先声明一个中间变量temp,用temp临时存储其中变量a的值,再将变量b的值赋值给a,最后将temp赋值给b。
2-9 C#的数据类型
最常用的几种类型:
-
字符类型** char **,存储用 ‘’ (单引号)括起来的一个字符,
例如:
char sex=‘男’;//存储性别 -
字符串类型** string** ,存储用“”(双引号)括起来的一串字符
例如:
string address=“北京市宣武区牛街北口”;//存储地址 -
整数类型** int** ,存储整数,
例如:
int age=23;//存储年龄 -
双精度浮点型** double **,存储小数,
例如:
double salary=7991.63;//存储工资
需要注意的是,某种类型的变量,只能存储这种类型的数据,否则,可能会出错。
2-10 C#的类型转换
自动类型转换:
2种不同类型的数据运算,低精度类型会自动转换为较高精度的类型。
以3.5+8为例,显然数字8的精度较低(int),而3.5的精度较高(double),所以,8会自动转换为double型,即转换为3.5+8.0进行运算,结果为11.5。
请看这个例子:double d=2; 2的精度显然低于变量d的精度,所以2会自动转换为2.0然后赋值给d。
再看这个例子:int i=3.0;变量i的精度低于3.0,但是由于i已经声明为int型的变量,变量的值可以变,但变量的类型可不能变来变去的,所以这条命令会出错的。
强制类型转换:
无法自动转换为我们需要的类型,可以用强制类型转换,比如上例可以这样完成:
int i=(int)3.0;
数字前面的(int)表示转换的目标类型为int,3.0会被强制转换为3。
需要注意, double 型强制转换为int型将失去小数部分,比如(int)2.8,得到的是2。
2-11 C#标识符的命名规则
程序中的变量名、常量名、类名、方法名,都叫做标识符。C#有一套标识符的命名规则,如果命名时不遵守规则,就会出错。这套规则简单说有下面三条:
①标识符只能由英文字母、数字和下划线组成,不能包含空格和其他字符。
错误的标识符声明:string $user; //错在使用了其他字符
②变量名不能用数字开头。
错误的标识符声明:double 6h;//错在用数字开头
③不能用关键字当变量名。
错误的标识符声明:char static ;//错在用关键字static做变量名
2-12 练习题
2-13 C#的算术运算符(一)
算术运算符中的加、减、乘、除。
**加:+ **加号有2个用途:
当用加号连接两个数字时,会计算出这两个数字的和。
另一种情况,当加号两边包含字符串的时候,会把两边的表达式连接成新的字符串。
比如:
Console.WriteLine(9+“2.2”);//输出92.2,因为"2.2"是字符串,所以9也被转换为"9",+起的作用是连接字符串
**减:- **。减号的作用就是减法。
*乘: **。乘号的作用是求2数的乘积。
**除:/ **。除号的作用是求2数相除的商。
比如:
Console.WriteLine(2/0.5);//输出4.0
但是,2个整数相除,结果仅保留整数部分,小数部分会被舍去。
2-14 C#的算术运算符(二)
取余运算符。
C#中的取余运算符就是%。
比如:
Console.WriteLine(19/5);//求19除以5的商,输出3
Console.WriteLine(19%5);//求19除以5的余数,输出4(商3余4)
**编程中,%常常用来检查一个数字是否能被另一个数字整除。**比如下面的代码片段:
int number = 29;
Console.WriteLine(number%2);//求number除以2的余数
如果输出0,表示没有余数,即number能够被2整除(是偶数);如果输出1,表示有余数,即number不能被2整除(是奇数)。
2-15 C#的算术运算符(三)
运算符++和–。
++,自加运算符。- -自减运算符。
注意:如果与其他运算在同一语句中,++写在变量前面或后面,算法不一样,请看下例:
Console.WriteLine(age++);作用等同于下面两句:
Console.WriteLine(age);//先打印
age=age+1;//后自加
Console.WriteLine(++age);作用等同于下面两句:
age=age+1;//先自加
Console.WriteLine(age);//后打印
2-16 练习题
2-17 C#的比较运算符
比较数字大小,或者比较数字相等的运算符是比较运算符。C#中的比较运算符有:
注意:表示两个值相等的“等于”是由2个“=”组成的。
比较运算的结果,都是布尔类型( bool ),bool类型我们是第一次提到,它表示逻辑上的真(成立)与假(不成立)。真与假用关键字 true 和 false 表示。
2-18C#的逻辑运算符(一)
逻辑运算符用来连接多个 bool 类型表达式,实现多个条件的复合判断。C#中的逻辑运算符包括:逻辑非( ! )、逻辑与( && )、逻辑或( || )。
- L逻辑非用来对某一个 bool 类型表达式取反,即“真变假”或“假变真”。
- 逻辑与用来判断 2 个 bool 类型表达式是否同时为 true 。
只有当&&两边的表达式均为 true 时,整个表达式才为 true ;若任意一个表达式为 false ,整个表达式即为 false 。 - 逻辑或用来判断2个 bool 类型表达式中是否有一个为 true 。
只要||两边的表达式有一个为 true ,整个表达式即为 true ;若两边的表达式均为 false ,整个表达式为 false 。
&& 运算符,两边同真才算真,一边为假就算假; || 运算符,一边为真即为真,两边同假才是假。
2-19 C#的逻辑运算符(二)
上一节巩固练习
2-20 练习题
2-21 C#的赋值运算符
其他的赋值运算符:
- 加赋值“+=”:先加后赋值。
- 减赋值“-=”:先减后赋值。
- 乘赋值“*=”:先乘后赋值。
- 除赋值“/=”:先除后赋值。
- 取余赋值“%=”:先取余后赋值。
与其他运算符从左向右计算不同,赋值运算符从右向左计算。
2-22 C#的运算符优先级
C#运算符的优先级请参考下面的顺序:
①括号。优先级最高。
②一元运算符。有些运算符两边有2个操作数,比如2+3、6%5等等,这些叫做二元运算符。只有一个操作数的叫做一元运算符,它们的优先级高于二元运算符。
一元运算符包括:++(自加) 、 --(自减) 、 !(逻辑非)。
③*(乘)、/(除)、%(取余)。
④+(加)、-(减)。
⑤>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
⑥==(等于)、!=(不等于)。
⑦&&(逻辑与)。
⑧||(逻辑或)。
⑨赋值运算符。包括:=、+=、-=、*=、/=、%=。
另外,还需要注意一点:优先级相同的运算符从左向右计算(赋值运算符相反)。