C#之中不仅仅是存在于数据,更加神奇的是将数据串联的东西,那么这些神奇的东西是什么呢?他们就是符号与表达式。
0.操作性概念
符号:符号是人们共同约定用来指称一定对象的标志物,它可以包括以任何形式通过感觉来显示意义的全部现象。
运算符:用来表达运算意义的符号
表达式:由符号连接起来的式子叫做符号表达式,比如由算术运算符连接起来的式子(如1+2、a+b)就叫做算术表达式,以此类推,有赋值表达式,关系表达式,逻辑表达式
1.算术运算符(数值型)
1.1自运算
通过符号进行自身的运算,适用于加减
++ 自加一
——自减一
PS:在C#视频中++是分前加和后加的
前加:先取原值参与运算,最后再加一
后加:先自身加一,再参与运算
减减同样如此
int num = 10;
int number=10+num ++;//先取原值参与运算 最后再加一
Console.WriteLine("num++的值为{0}", num);
Console.WriteLine("10+num++的结果为{0}",number );
Console.ReadKey();
int num = 10;
int number=++num +10;//先自身加一,再参与运算
Console.WriteLine("++num的值为{0}", num);
Console.WriteLine("++num+10的结果为{0}",number );
Console.ReadKey();
1.2非自运算
符号 | 含义 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
优先级:先乘除,后加减,有括号先算括号里的,相同级别从左至右计算
例子
int a = ((1 + 5) + 3) * 2;//(6+3)*2=18
Console.WriteLine(a );
Console.ReadKey();
2非计算运算符
2.1赋值运算符(数值型)
2.1.1普通赋值运算符
=
例如:a=a+1; 这里的=号是赋值运算符,不是数学义意上的相等
2.1.2复合赋值运算符
符号 | 功能 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 模运算赋值 |
<<= | 左移赋值 |
>>= | 右移赋值 |
&= | 位逻辑与赋值 |
|= | 位逻辑或赋值 |
^= | 位逻辑异或赋值 |
2.1.3简单赋值运算符与复合赋值运算符的区别
从数值上讲i=i+3和i+=3是没有区别的,而且从程序的输出的结果来看也是没有区别的。
但是从计算的次数上讲是有区别的,对于i=i+3,i被计算了两次,对于复合赋值运算符i+=3,i只被计算了一次,而且使用普通的赋值运算符会加大程序的开销,使效率降低。
2.2关系运算符(布尔型)
符号 | 关系 |
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于(包含) |
<= | 小于等于(包含) |
2.3逻辑运算符(布尔型)
运算符 | 逻辑 |
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
逻辑运算符两边一般情况都是关系表达式
表达式1与表达式2的结果如下
表达式1 | 表达式2 | 表达式1&&表达式2 |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
逻辑与
都真才真,只要有一假(包含两假)则假
表达式1或表达式2的结果如下
表达式1 | 表达式2 | 表达式1||表达式2 |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
逻辑或
都假才假,只要有一真(包含两真)则真
表达式1非表达式2结果如下
表达式1 | !表达式1 |
True | False |
False | True |
逻辑非
取反,真反为假,假反为真
3运算符
运算符的元数取决于能进行运算的操作数的个数
名称 | 解释 | 类型 |
一元运算符 | 需要一个操作数 | 算术(++,--) |
二元运算符 | 需要两个操作数 | 算术、逻辑、关系、赋值 |
三元运算符 | 需要三个操作数 | 算法(条件?表达式1:表达式2) |
4转义符
转义符 | 表示 |
@ | 在字符串前面表示不转义 |
\n | 换行 |
\b | 退格 |
\\ | 一个\ |
\t | 水平制表符 |
\” | 一个双引号 |
例子
Console.WriteLine("老牛\n老李");//换行
Console.WriteLine("老牛\b老李");//退格
Console.WriteLine("老牛\\老李");//一个/
Console.WriteLine("老牛\t老李");//水平制表符
Console.WriteLine ("小杨很\"可爱\"");//一个""
Console.ReadKey();