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();