运算符之算术运算符、关系运算符、逻辑运算符、复合赋值运算符、其他运算符

这篇具有很好参考价值的文章主要介绍了运算符之算术运算符、关系运算符、逻辑运算符、复合赋值运算符、其他运算符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下:
算术运算符
关系运算符
逻辑运算符
复合赋值运算符
位运算符
其他运算符
运算符优先级(由高到低)

类别 运算符 结合性
后缀 ()[]->.++-- 从左到右
一元 =-!~ ++ -- (type)* & sizeof 从右到左
乘除 * / % 从左到右
加减 + - 从左到右
移位 <<  >> 从左到右
关系 < <= > >= 从左到右
相等 ==         != 从左到右
位与AND & 从左到右
位异或XOR

^

从左到右
位或OR | 从左到右
逻辑与AND && 从左到右
逻辑或OR || 从左到右
条件 ?: 从右到左

一、算术运算符

算术运算符又分为一元运算符和二元运算符。

一元:++、--:对于向加加或者减减这样只需要一个操作数就能完成的运算,称为一元运算符。

二元:*、/、%、+、-、=:对于这些需要两个或以上才能完成运算操作符,称为二元运算符。

运算符 描述
+ 加运算符
- 减运算符
++ 增量运算符
-- 减量运算符
* 乘法运算符
/ 除法运算符
% 余数运算符
= 赋值运算符

=赋值运算符

int a = 10;//将10赋值给整形a变量

bool b = true;//将true赋值给布尔b变量

+加运算符

int a = 5;

int b = 12;

int c = a + b;

Console.WriteLine(c);//输出结果:17

-运算符

int a = 19;

int b = 12;

int c = a - b;

Console.WriteLine(c);//输出结果:7

*乘法运算符

int a = 5;

int b = 10;

int c = a * b;

Console.WriteLine(c);//输出结果:50

/除法运算符

int a = 10;

int b = 5;

int c = a / b;

Console.WriteLine(c);//输出结果:2

Console.WriteLine(b/a);//输出结果:0

double ab = 2.2;

Console.WriteLine(ab / 2);//输出结果:1.1

%求余运算符

int a = 10;

int b = 3;

int c = a%b;

Console.WriteLine(c);//输出结果:1

Console.WriteLine(a / b);//输出结果:0

//注意求余,一般仅限于 整形类型(short,int,long)

 ++自增运算符

int iu = 10;

iu++;//iu = 11, iu = iu + 1;

++iu;//iu = 12, iu = iu + 1;

i++与++i的区别

int a = 10;

int b = a++;//b=10

Console.WriteLine($"a的值={a},b的值={b}");//输出结果:a=11 b=10

int a = 10;

int b = ++a;//b=11 a=11

Console.WriteLine($"a的值={a},b的值={b}");//输出结果:a=11 b=11

--自减运算符

int i = 10;

i--;//i = 9 i = i -1;

--i;//i = 8 i = i -1 ;

i--与--i与i++,++i一样

二、关系运算符
下表显示了 C# 支持的所有关系运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:
 

运算符 描述 实例
== 检查两个操作数的值是否相等,如果相等则条件为真 A==B不为真
!= 检查两个操作数的值是否相等,如果不相等则为真 A!=B为真
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真 A>B不为真
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真 A<B为真
>= 检查左操作数的值是否大于等于右操作数的值,如果是则条件真 A>=B不为真
<= 检查左操作数的值是否小于等于右操作数的值,如果是则条件真 A<=为真

三、逻辑运算符

下表显示了 C# 支持的所有逻辑运算符。假设变量 A 为布尔值 true,变量 B 为布尔值 false,则:

运算符 描述 实例
&& 称为逻辑与运算符。如果两个操作数都是非零,则条件为真。 A&&B为真
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真 A||B为真
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真非运算符将使其为假 !(A&&B)为真

四、赋值运算符
下表列出了 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# 支持的其他一些重要的运算符,包括 sizeof、typeof 和 ? :。

运算符 描述 实例
sizeof() 返回数据类型的大小 sizeof(int),返回4
typeof() 返回class的类型 typeof(Program);
& 返回变量的地址 &a;将得到变量的实际地址
* 变量的指针 *a;将指向一个变量
?: 条件表达式 如果条件为真?则为X:否则为Y
is 判断对象是否为某一类型。 if(Ford is Car)//检查Ford是否是Car类的一个对象
as  强制转换,即使转换失败也不会抛出异常

object obj = new StringReader("Hello");

StringReader r = obj as StringReader;文章来源地址https://www.toymoban.com/news/detail-702996.html

namespace Demo运算符
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //自加自减
            //++自加1      --自减1
            //int a = 10;
            //a++;//a = a+1
            //Console.WriteLine(a);
            //int b = 10; 
            //b--;//b = b-1
            //Console.WriteLine(b);

            ++在前      ++在后
            ++在前  先自加再赋值
            ++在后  先赋值再自加
            --在前      --在后
            --在前  先自减再赋值
            --在后  先赋值再自减
            //int x = 3;
            //int y = x--;
            //Console.WriteLine("y={0}",y);
            //y = --x;
            //Console.WriteLine("y={0}", y);

            //int z = 2;
            //int s = z++;//2 s=2 z =3
            //Console.WriteLine("s = {0}", s);
            //s = ++z;//4 s=4 z=4
            //Console.WriteLine("s = {0}", s);

            //+
            //int a = 10;
            //int b = 20;
            //int c = a + b;
            //Console.WriteLine(c);
            -
            //int d = a - b;
            //Console.WriteLine(d);
            *
            //int e = a * b;
            //Console.WriteLine(e);
              /取整数
            //int f = a / b;
            //Console.WriteLine(f);
            % 取余数
            //int g = a % b;
            //Console.WriteLine(g);

            //练习:从键盘输入一个三位数的整数,分别输出它的百位、个位和十位数。
            //Console.WriteLine("请输入一个三位的整数:");
            一个三位整数输入123 /100      %100/10     %10
            //int num = Convert.ToInt32(Console.ReadLine());
            百位 /100
            //int num1 = num / 100;
            //Console.WriteLine(num1);
            十位 %100/10
            //num1 = num % 100 / 10;
            //Console.WriteLine(num1);
            个位 %10
            //num1 = num % 10;
            //Console.WriteLine(num1);

            //四位数 取最前面的一个数字的时候,这个数字是几位数就/几
            //Console.WriteLine("请输入一个五位的整形数据:");
            一个五位整数的输入     12345 /10000    %10000/1000     %1000/100
            %100/10   %10
            //int num3 = Convert.ToInt32(Console.ReadLine());
            //if((num3 > 0) &&(num3 < 100000))
            //{
            //    //万位
            //    int num1 = num3 / 10000;
            //    Console.WriteLine("输入的五位整数万位:{0}", num1);
            //    //千位
            //    num1 = num3 % 10000 / 1000;
            //    Console.WriteLine("输入的五位数的千位:{0}", num1);
            //    //百位
            //    num1 = num3 % 1000 / 100;
            //    Console.WriteLine("输入的五位数的百位:{0}", num1);
            //    //十位
            //    num1 = num3 % 100 / 10;
            //    Console.WriteLine("输入的五位数的十位:{0}", num1);
            //    //个位
            //    num1 = num3 % 10;
            //    Console.WriteLine("输入的五位整数的个位:{0}", num1);
            //}
            //else if((num3 < 0) || (num3 >= 100000))
            //{
            //    Console.WriteLine("输入的数据错误,请输入一个五位的整数!!!");
            //}

            //复合运算符
            //int x = 10;
            //int y= 20;
            //x += y;//x = x + y;
            //Console.WriteLine(x);

            设int s = 11,则执行完s+=s*s之后,s的值是
            //int s = 11;
            //s += s * s;
            //Console.WriteLine(s);

            //关系运算符
            //int a = 10;
            //int b = 20;
            //bool c = a > b;
            //Console.WriteLine(c);

            //c = a < b;  
            //Console.WriteLine(c);

            //c = a >= b;
            //Console.WriteLine(c);

            //c = a <= b;
            //Console.WriteLine(c);

            //c = a == b;
            //Console.WriteLine(c);

            //c = a != b;
            //Console.WriteLine(c);

            //string类型
            //string a = "10";
            //string b = "80";
            //string s = a + b;
            //Console.WriteLine(s+"asdf");

            //string a = "a";
            //string b = "b";
            //bool c = a == b;
            //Console.WriteLine(c);
            //逻辑运算符
            //&&与 并且    ||或者        !:取反
            //&&:2个条件都正确才会返回true 否则返回false
            //true true true
            //true false false
            //false true false
            //false false false
            //Console.WriteLine("请输入第一个一位整数:");
            //int num1 = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("请输入第二个一位整数:");
            //int num2 = Convert.ToInt32(Console.ReadLine());
            //bool than = num1 == 9 && num2 ==9;
            //Console.WriteLine(than);
            //than = num1 < 10 && num2 >=10;
            //Console.WriteLine(than);
            //than = num1 > 10 && num2 <= 10;
            //Console.WriteLine(than);
            //than = num1 >= 10&&num2 >=10;
            //Console.WriteLine(than);

            //  ||或 或者 只要一个条件对了就返回true
            //true true true
            //false true true
            //true false true
            //false false false
            //int a = 10;
            //int b = 20;
            //bool c = a == 10 || b== 20;
            //Console.WriteLine(c);
            //c = a < 10 || b == 20;
            //Console.WriteLine(c);
            //c = a == 10 || b > 20;
            //Console.WriteLine(c);
            //c= a> 10 || b > 20;
            //Console.WriteLine(c);

            !:取反
            //int a = 10;
            //int b = 20;
            //bool c = !(a > b);
            //Console.WriteLine(c);
            //Console.WriteLine(!c);

            //条件运算符
            //操作数1?操作数2:操作数3
            //?前面的是对的true就返回:前面的值,反之就返回:后面的值
            //int a = 10;
            //bool b = a > 10 ? true : false;
            //Console.WriteLine(b);
            //string d = a >= 10 ? "10" : "22";
            //Console.WriteLine(d);

            //条件1能被4整除 不能被100整除
            //条件2能被400整除
            //Console.WriteLine("请输入一个年份:");
            //int num1 = Convert.ToInt32(Console.ReadLine());
            //bool a = (((num1 % 4 == 0) && (num1 % 100 != 0)) || (num1 % 400 == 0)) ? true : false;
            //Console.WriteLine(a);

            sizeof
            //int a = sizeof(int);
            //Console.WriteLine(a);

            typeof 反射
            //Console.WriteLine(typeof(Program));

            //运算符的优先级
            //运算优先级别—般规则∶
            // 一元运算符高于二元运算教高于三元运算符
            //算术运算符高于关系运算符﹐高于逻辑运算符
            //int a = 10;
            //int b = 20;
            //bool c = b + a++ > 10&& b == 20 ? true : false;
            //Console.WriteLine(c);


        }
    }
}

到了这里,关于运算符之算术运算符、关系运算符、逻辑运算符、复合赋值运算符、其他运算符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包