一、C#基本数据类型
1.整型
sbyte | 有符号数,占用1个字节,-2〜2-1 |
---|---|
byte | 无符号数,占用1个字节,0〜2-1 |
short | 有符号数,占用2个字节,-2〜2-1 |
ushort | 无符号数,占用2个字节,0〜2-1 |
int | 有符号数,占用4个字节,-2〜2-1 |
uint | 无符号数,占用4个字节,0〜2-1 |
long | 有符号数,占用8个字节,-2〜2-1 |
ulong | 无符号数,占用8个字节,0〜2-1 |
2、浮点型
float | 单精度浮点型,占用4个字节,最多保留7位小数 |
---|---|
double | 双精度浮点型,占用8个字节,最多保留16位小数 |
3、字符型和字符串类型
char 表示字符 ‘a’、’中’,用单引号括起来
string 表示字符串 “abc”、”你好世界” ,用双引号括起来
在 C# 语言中还有一些特殊的字符串,代表了不同的特殊作用。由于在声明字符串类型的数据时需要用双引号将其括起来,那么双引号就成了特殊字符,不能直接输出,转义字符的作用就是输出这个有特殊含义的字符。
\‘ | 单引号 |
---|---|
\“ | 双引号 |
\\ | 反斜杠 |
\0 | 空 |
\a | 警告(产生蜂鸣音) |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
3、布尔类型
boll 声明 值只有 true 和 false
二、运算符
1、算术运算符
+ | 对两个操作数做加法运算 |
---|---|
- | 对两个操作数做减法运算 |
* | 对两个操作数做乘法运算 |
/ | 对两个操作数做除法运算 |
% | 对两个操作数做取余运算 |
- 对于两个字符串使用 + 运算符时,代表的是字符串值的连接
- 使用 / 运算符时,操作数如果都为整型则进行的是取整运算,如果操作数包含浮点数则为正常的除法运算
- 使用 % 运算符时,操作数都整数则为取余。经常用来判断某个数是否能被其他的数整除
2、逻辑运算符
&& | 逻辑与 | 如果运算符两边都为 True,则整个表达式为 True,否则为 False;如果左边操作数为 False,则不对右边表达式进行计算,相当于“且”的含义 |
---|---|---|
|| | 逻辑或 | 如果运算符两边有一个或两个为 True,整个表达式为 True,否则为 False;如果左边为 True,则不对右边表达式进行计算,相当于“或”的含义 |
! | 逻辑非 | 表示和原来的逻辑相反的逻辑 |
3、比较运算符
== | 表示两边表达式运算的结果相等,注意是两个等号 |
---|---|
!= | 表示两边表达式运算的结果不相等 |
> | 表示左边表达式的值大于右边表达式的值 |
< | 表示左边表达式的值小于右边表达式的值 |
>= | 表示左边表达式的值大于等于右边表达式的值 |
<= | 表示左边表达式的值小于等于右边表达式的值 |
使用比较运算符得到的值为布尔值 true 或 false
4、位运算符
所谓的位运算,通常是指将数值型的值从十进制转换成二进制后的运算,由于是对二进制数进行运算,所以使用位运算符对操作数进行运算的速度稍快。
& | 按位与。两个运算数都为 1,则整个表达式为 1,否则为 0;也可以对布尔型的值进行比较,相当于“与”运算,但不是短路运算 |
---|---|
| | 按位或。两个运算数都为 0,则整个表达式为 0,否则为 1;也可以对布尔型的值进行比较,相当于“或”运算,但不是短路运算 |
~ | 按位非。当被运算的值为 1 时,运算结果为 0;当被运算的值为 0 时,运算结果为 1。该操作符不能用于布尔型。对正整数取反,则在原来的数上加 1,然后取负数;对负整数取反,则在原来的数上加 1,然后取绝对值 |
^ | 按位异或。只有运算的两位不同结果才为 1,否则为 0 |
<< | 左移。把运算符左边的操作数向左移动运算符右边指定的位数,右边因移动空出的部分 补 0 |
>> | 有符号右移。把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值,左侧因移动空出的部分补 0;如果是负值,左侧因移动空出的部分补 1 |
>>> | 无符号右移。和 >> 的移动方式一样,只是不管正负,因移动空出的部分都补 0 |
左移 1 位相当于将操作数乘 2,右移 1 位相当于将操作数除 2
5、三元运算符
布尔表达式 ? 表达式 1: 表达式 2
- 布尔表达式:判断条件,它是一个结果为布尔型值的表达式。
- 表达式 1:如果布尔表达式的值为 True,该三元运算符得到的结果就是表达式 1 的运算结果。
- 表达式 2:如果布尔表达式的值为 False,该三元运算符得到的结果就是表达式 2 的运算结果。
6、赋值运算符
= | x=y,等号右边的值给等号左边的变量,即把变量 y 的值赋给变量 x |
---|---|
+= | x+=y,等同于 x=x+y |
-= | x-=y,等同于 x=x-y |
*= | x=y,等同于 x=xy |
/= | x/=y,等同于 x=x/y |
%= | x%=y,等同于 x=x%y,表示求 x 除以 y 的余数 |
++ | x++ 或 ++x,等同于 x=x+1 |
— | x— 或 —x,等同于 x=x-1 |
7、运算符优先级!!
前面介绍了 C# 中基本的运算符,在表达式中使用多个运算符进行计算时,运算符的运算有先后顺序。
如果想改变运算符的运算顺序必须依靠括号。运算符的优先级如下表所示,表中显示的内容是按优先级从高到低排序的。
运算符 | 结合性 |
---|---|
.(点)、()(小括号)、[](中括号) | 从左到右 |
+ (正)、-(负)、++ (自增)、—(自减)、~(按位非)、!(逻辑非) | 从右到左 |
* (乘)、/ (除)、% (取余) | 从左向右 |
+ (加)、-(减) | 从左向右 |
<<、>>、>>> | 从左向右 |
<、<=、>、>= | 从左向右 |
==、!= | 从左向右 |
& | 从左向右 |
| | 从左向右 |
^ | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从右到左 |
=、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>= | 从右到左 |
三、变量
数据类型 变量名;
数据类型 变量名 = 值;
class Program
{
static void Main(string[] args)
{
int num1 = 100;
double num2 = 100.123;
bool isFlag = true;
String name = "Hello";
Console.WriteLine("num1= "+ num1);
Console.WriteLine("num2=" + num2);
Console.WriteLine("isFlag=" + isFlag);
Console.WriteLine("name=" + name);
}
}
四、常量
const 数据类型 常量名 = 值;
定义常量时必须赋值
五、变量命名规则
Pascal 命名法是指每个单词的首字母大写;Camel 命名法是指第一个单词小写,从第二个单词开始每个单词的首字母大写。
1) 变量的命名规则
变量的命名规则遵循 Camel 命名法,并尽量使用能描述变量作用的英文单词。例如存放学生姓名的变量可以定义成 name 或者 studentName 等。另外,变量名字也不建议过长, 最好是 1 个单词,最多不超过 3 个单词。
2) 常量的命名规则
为了与变量有所区分,通常将定义常量的单词的所有字母大写。例如定义求圆面积的 n 的值,可以将其定义成一个常量以保证在整个程序中使用的值是统一的,直接定义成 PI 即可。
3) 类的命名规则
类的命名规则遵循 Pascal 命名法,即每个单词的首字母大写。例如定义一个存放学生信息的类,可以定义成 Student。
4) 接口的命名规则
接口的命名规则也遵循 Pascal 命名法,但通常都是以 I 开头,并将其后面的每个单词的首字母大写。例如定义一个存放值比较操作的接口,可以将其命名为 ICompare。
5) 方法的命名规则
方法的命名遵循 Pascal 命名法,一般采用动词来命名。例如实现添加用户信息操作的方法,可以将其命名为 AddUser。
6、if else
if (布尔表达式) {
语句块;
} else if (布尔表达式) {
语句块;
} else {
语句块;
}
7、switch case
switch(表达式){
case 值1:
代码块1;
break;
case 值2:
代码块2;
break;
default:
代码块2;
break;
}
在这里,switch 语句中表达式的结果必须是整型、字符串类型、字符型、布尔型等数据类型。
如果 switch 语句中表达式的值与 case 后面的值相同,则执行相应的 case 后面的语句块。
如果所有的 case 语句与 switch 语句表达式的值都不相同,则执行 default 语句后面的值。
default 语句是可以省略的。需要注意的是,case 语句后面的值是不能重复的。
8、for循环
for(表达式 1 变量赋值; 表达式 2 循环条件; 表达式3 改变变量大小)
{
表达式 4 满足循环条件时执行;
}
9、while循环
while(布尔表达式)
{
语句块;
}
10、do while 循环
do
{
语句块;
}while(布尔表达式);
11、break
break 语句用于中断循环,使循环不再执行。如果是多个循环语句嵌套使用,则 break 语句跳出的则是最内层循环。
12、continue
continue 语句有点像 break 语句。但它不是强制终止,continue 会跳过当前循环中的代码,强制开始下一次循环。
13、goto
goto Labell;
语句块 1;
Labell
语句块 2;
goto 语句不能跳转到循环语句中,也不能跳出类的范围,goto 语句并不常用