(四)C#编程基础复习——运算符
特此声明:本教程内容可能有部分参照其他博主的观点或描述,但始终不影响我学习的热情,代码全部自己手工敲打,编辑此教程目的不是为了博取大家眼球,也不是为利益所驱,只是纯属为了方便自己学习,编辑的过程中也让自己加深了对C#各个基础的印象,同时也让自己编码过程更加流畅顺利,最后还能帮助到有需要的人,代码都是自己亲测有效,如有侵权可以联系本人删除。
运算符其实就是一个符号,用来告诉编译器执行特定的数学或者逻辑运算。C#中内置了丰富的运算符,大致可以分为以下几类:
一、算术运算符
算术运算符即完成特定算术运算的符号,例如加、减、乘、除、余等,如下图所示:
int a = 10;
int b = 20;
Console.WriteLine("a+b={0}",a+b);
Console.WriteLine("a-b={0}",a-b);
Console.WriteLine("a*b={0}",a*b);
Console.WriteLine("a/b={0}",a/b);
Console.WriteLine("a%b={0}",a%b);
Console.WriteLine("++a的值是{0}",++a);
a = 30;
Console.WriteLine("a--的值是{0}",a--);
Console.WriteLine("a的值是{0}",a);
自增、自减运算,它们既可以放在前面也可以放在后面,区别就是:在变量的前面时表示先进行自增或者自减运算,例如(a=10,++a=11,a++=11)
int a = 10;
int b = 20;
Console.WriteLine("++a的值为{0}",++a);
Console.WriteLine("a++的值为{0}",a++);
Console.WriteLine("--b的值为{0}", --b) ;
Console.WriteLine("b--的值为{0}",b--);
Console.ReadKey();
二、关系运算符
关系运算符用来比较运算符左右两边的操作数,如图所示:
int a = 20;
int b = 30;
if(a==b)
{
Console.WriteLine("a等于b");
}
else
{
Console.WriteLine("a不等于b");
if(a>b)
{
Console.WriteLine("a大于b");
}
else
{
Console.WriteLine("a小于b");
if(a<b)
{
Console.WriteLine("a小于b");
}
else
{
Console.WriteLine("无法读取");
Console.ReadKey();
}
}
}
Console.ReadKey();
三、逻辑运算符
假设变量A的布尔值是true,变量B的布尔值是false:
bool a = true;
bool b = false;
if(a&&b)//两真为真、一假为假
{
Console.WriteLine("a&&b的条件值为真");
}
else
{
Console.WriteLine("a&&b的条件为假");
}
if (a || b)//一真为真,两假为假
{
Console.WriteLine("a||b的值为真");
}
else
{
Console.WriteLine("a||b的值为假");
}
if (!(a &&b))//真假调换
{
Console.WriteLine("!(a&&b)条件为真");
}
else
{
Console.WriteLine("!(a&&b)条件为假");
}
if(!(a||b))
{
Console.WriteLine("!(a||b)条件为真");
}
else
{
Console.WriteLine("!(a||b)条件为假");
}
Console.ReadKey();
四、位运算符
在学习位运算符之前,先学会什么是二进制、八进制、十进制、十六进制,下面两张图介绍如何互相转换:
代码如下:
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
Console.WriteLine("a & b 的值是 {0}", c);
c = a | b; /* 61 = 0011 1101 */
Console.WriteLine("a | b 的值是 {0}", c);
c = a ^ b; /* 49 = 0011 0001 */
Console.WriteLine("a ^ b 的值是 {0}", c);
c = ~a; /*-61 = 1100 0011 */
Console.WriteLine("~a 的值是 {0}", c);
c = a << 2; /* 240 = 1111 0000 */
Console.WriteLine("a << 2 的值是 {0}", c);
c = a >> 2; /* 15 = 0000 1111 */
Console.WriteLine("a >> 2 的值是 {0}", c);
Console.ReadLine();
运行结果如下:
五、赋值运算符
赋值运算符顾名思义就是用来为变量赋值的,如图所示有这些复制运算符:
执行代码案例如下:
int a = 33;
int c;
c = a;
Console.WriteLine("c=a的值为:{0}",c);
c += a;
Console.WriteLine("c+=a的值为:{0}",c);
c -= a;
Console.WriteLine("c-=a的值为:{0}",c);
c *= a;
Console.WriteLine("c*=a的值为:{0}",c);
c /= a;
Console.WriteLine("c/=a的值为:{0}",c);
c = 123;
c %= a;
Console.WriteLine("c%=a的值为:{0}",c);
c <<= 2;
Console.WriteLine("c<<=2的值为:{0}",c);
c >>= 2;
Console.WriteLine("c>>=2的值为:{0}",c);
c &= 2;
Console.WriteLine("c&=2的值为:{0}",c);
c ^= 2;
Console.WriteLine("c^=2的值为:{0}",c);
c |= 2;
Console.WriteLine("c|=2的值为:{0}",c);
运行结果如下:
六、其他运算符
除上面介绍的运算符之外,C#中还支持一些其他重要的运算符,如下表所示:
代码示例如下:
//sizeof运算符实例
Console.WriteLine("int大小是:{0}",sizeof(int));
Console.WriteLine("short的大小是:{0}",sizeof(short));
Console.WriteLine("double的大小是:{0}",sizeof(double));
//typeof()类型
Console.WriteLine("int的类型是:{0}", typeof(int)) ;
Console.WriteLine("string的类型是:{0}",typeof(string));
Console.WriteLine("float的类型是:{0}",typeof(float));
//&返回变量地址
/*三元运算符的实力*/
int a, b;
a = 11;
b = 20;
b=(a==1)? 20 : 30;
Console.WriteLine("b的值是:{0}",b);
b = (a == 11) ? 20:30;
Console.WriteLine("b的值为:{0}",b);
Console.ReadKey();
运行结果如下:
三元运算符“?:”,语法为:条件表达式?表达式1:表达式2;
该操作首先求出条件表达式的值(bool类型),为true时调用表达式1,为flase时调用表达式2。其逻辑为:“如果为真执行第一个,否则执行第二个。”
七、运算符的优先级
前面我们介绍了运算符的类型,当这些不同类型的运算符出现在同一个表达式的时候,就必须要遵循运算符的优先级来进行计算,才能保证运算的合理性和结果的正确性、唯一性。运算符的优先级决定了表达式中各个部分执行运算的先后顺序,例如数学中的“先算乘除、后算加减,括号除外”,程序中也是如此,也会有个有限顺序,其实这点可以了解下就行,不会可以翻字典:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战