C#运算符
背景:
因编程的基础差,因此最近开始巩固学习c#基础,后期把自己学习的东西,总结相应文章中,有不足处请大家多多指教。
1. 简介
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。c# 有丰富的内置运算符,分类如下:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 复合赋值运算符
- 位运算符
- 其他运算符
本文章将逐一讲解算术运算符、关系运算符、逻辑运算符、复合赋值运算符。
2. 算法运算符
算术预算符又分为一元运算符和二元运算符。
- 一元:++、--、+、-
- 二元:*、/、%、+、-
对于向加加或者减减这样只需要一个操作数就能完成的运算,称为一元运算符。
+ 、-、 *、 /、 %、对于这些需要两个或以上才能完成运算操作符,称为二元运算符。
运算符 |
描述 |
+ |
加运算符 |
- |
减运算符 |
++ |
增量运算符 |
-- |
减量运算符 |
* |
乘法运算符 |
/ |
除法运算符 |
% |
余数运算符 |
优先级
一元的运算符的优先级要高于二元的运算符。
如果在一个表达式当中,既有一元运算符,又有二元运算符,我们要先计算一元运算符。
实例
1. 加加
int number = 10; number++; ++number;//number=number+1; console.writeline(number); console.readkey();
2. 减减
int number = 10; number--; --number; console.writeline(number); console.readkey();
3.练习题
int a = 5; int b = a++ + ++a * 2 + --a + a++; // 5+7*2+6+6 7 console.writeline(a); console.writeline(b); console.readkey()
//最后输出结果a=7,b=31
总结:++:分为前++和后++,不管是前++还是后++,最终结果都是给这个变量加—;
区别:表达式当中,如果是前++,则是给自身加一,然后带着加一后的值参与运算。
--:同上
3. 关系运算符
关系运算符是用来描述两个事物之间的关系,由关系运算符连接的表达式称之为关系表示式。
运算符 |
描述 |
== |
相等 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
bool类型
关系运算符用bool类型表示;
在c#中我们用bool类型描述对或者错,bool类型的值只有两个 ,true、false
实例
// 大象的重量(1500)>老鼠的重量(1) //关系表达式的结果是bool类型 // bool b = 1500 > 1; // bool b = 3 > 1000; // bool b = 39 < 18; bool b = 20 == 20; console.writeline(b); console.readkey(); //兔子的寿命(3)>乌龟的寿命(1000) //39<18 //我的年龄(20)==你的年龄(20)
4. 逻辑运算符
又逻辑运算符连接的表达式叫做逻辑表达式,逻辑运算符两边的一般都是关系表达式或者bool类型的值。
运算符 |
描述 |
&& |
逻辑与运算符 |
|| |
逻辑或运算符 |
! |
逻辑非运算符 |
实例
//让用户输入老苏的语文和数学成绩,输出以下判断是否正确,正确输出true,错误输出false //1)老苏的语文和数学成绩都大于90分 console.writeline("小苏,输入你的语文成绩"); //string strchinese = console.readline(); int chinese = convert.toint32(console.readline()); console.writeline("小苏,请输入你的数学成绩"); int math = convert.toint32(console.readline()); //2)语文和数学有一门是大于90分的 bool b = chinese > 90 || math > 90; console.writeline(b); console.readkey()
用法解释
逻辑运算符两边放的一般都是关系表达式或者bool类型的值。
5>3 &&true
3>5||false
!表达式
逻辑表达式的结果同样也是bool类型
逻辑与 &&
表达式1&&表达式2
表达式1 |
表达式2 |
表达式1&&表达式2 |
true |
true |
true |
false |
true |
false |
true |
false |
false |
false |
false |
false |
逻辑或 ||
表达式1||表达式2
表达式1 |
表达式2 |
表达式1||表达式2 |
true |
true |
true |
true |
false |
true |
false |
true |
true |
false |
false |
false |
逻辑非 !
!表达式
表达式 |
!表达式 |
true |
false |
false |
true |
5. 复合赋值运算符
下表列出了 c# 支持的赋值运算符:
运算符 |
描述 |
实例 |
= |
简单的赋值运算符,把右边操作数的值赋给左边操作数 |
c = a + b 将把 a + b 的值赋给 c |
+= |
加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 |
c += a 相当于 c = c + a |
-= |
除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 |
c -= a 相当于 c = c - a |
*= |
乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作 |
c *= a 相当于 c = c * a |
/= |
除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 |
c /= a 相当于 c = c / a |
%= |
求模且赋值运算符,求两个操作数的模赋值给左边操作数 |
c %= a 相当于 c = c % a |
<<= |
左移且赋值运算符 |
c <<= 2 等同于 c = c << 2 |
>>= |
右移且赋值运算符 |
c >>= 2 等同于 c = c >> 2 |
&= |
按位与且赋值运算符 |
c &= 2 等同于 c = c & 2 |
^= |
按位异或且赋值运算符 |
c ^= 2 等同于 c = c ^ 2 |
|= |
按位或且赋值运算符 |
c |= 2 等同于 c = c | 2 |
实例:
int number=10; //1.+= : number+=20; number=number+20;
//2. -=: number-=5; number=number-5;
//3. *=: number*=5; number=number*5;
//4. /=: number/=5; //5. %=:
number%=5;