C#系列之算数运算符(四)
2021-07-20 08:25
今天,我将做一个算术运算符++和--的笔记以及一元运算符和二元运算符同时存在怎么计算的笔记
++;分为前加加和后加加,但是最后结果都是+1;
--;分为前减减和后减减,但是最后结果都是-1;
例如:
int num = 10;
num++;
Console.WriteLine(num);
Console.ReadKey();
int num1 = 10;
++num1;
Console.WriteLine(num1);
Console.ReadKey();
int num2 = 10;
其结果为:
区别:其区别表现在表达式中,如果是前加加,则先给这个变量自身加1,然后带上这个加1后的值去参加计算,如果是后加加,则先拿原先的值参与运算,运算完成后,再将自身变量加1.
例如:
int num4 = 10;
int result = 10 + num4++;
Console.WriteLine(num4);
Console.WriteLine(result);
Console.ReadKey();
int num5 = 10;
int Result = 10 + (++num5);
Console.WriteLine(num5);
Console.WriteLine(Result);
Console.ReadKey();
其结果为:
知识点:对于像++或者--只需要一个操作数就能完成的计算称之为一元运算符,而像+-*%/对于这些需要两个或者两个以上才能完成计算的操作符称之为二元运算符
重点(一元运算符要高于二元运算符)
如果在一个计算表达式中,既有一元运算符又有二元运算符,首先,先计算一元运算符,然后再从左往右依次运算。
例如:
int a = 5;
int b = a++ + ++a * 2 + --a + a++;
Console.WriteLine(a);
Console.WriteLine(b);
Console.ReadKey();
其结果并不是5和26
而是
运算过程:
int b = a++ + ++a * 2 + --a + a++;
5+14+6+6=31
首先先运算a++,其结果为6,但是是在运算以后加1,所以值为5,因为一元运算符要优先于二元运算符,所以先算++a,其结果为7*2等于14,a的值为7,--a为在运算前减1,所以为6,a的值为6,a++为先运算然后再加1,所以为6,此时,运算完后a的值为7
所以,a的值为7,b的值为31