分享------关于复合赋值运算符

大家好,今天要给大家介绍的是复合赋值运算符这个新的知识点。平时我们在修改一个变量值的时候,总是会用到下面的方法:

a = 0
a = a+1

在python中这种对a进行加法之后再赋值给a的情况,我们叫做自加,常见的操作当然还有自减,下面这种操作是专门为这种情况提供的语法。

a = 0
a += 1

在上例中a+=1和a = a+1所描述的算术事实是完全一致的。都是在修改a变量让它的值+1

当然相似的常见操作还有。

a = 100
a -= 1

上面的代码相当于a = a-1

还有一些不太常见的大家了解就可以了

a = 5
a *=5    #代表a = a*5
print(a)
a /= 5    #代表a = a/5
print(a)
a %= 3  #代表a = a%3
print(a)

上面这些写法在c语言中也支持,所以推荐大家在对变量进行修改的时候使用这种方式。

大家学会了么?

原文地址:https://www.cnblogs.com/shangping/p/11294281.html

时间: 2024-08-09 22:58:44

分享------关于复合赋值运算符的相关文章

Java 之复合赋值运算符

1.引入问题 切入正题,看下面代码,结果应该是怎么样的 public class App{ public static void main( String[] args ){ byte a=1 ; int b = 10; a= a+b; System.out.println(a); a+=b; System.out.println(a); } } 这段代码的执行结果是什么?? 2. 执行结果 ...................答案如下.............. 上面的代码的编译的时候会报错

复合赋值运算符 += 到底怎么运算的?

题目: short s1 = 1;  s1 = s1 + 1; 有什么错? short s1 = 1;  s1 +=1; 有什么错? 此题咋一看,这两段代码貌似没有什么区别,但是它们的执行结果是不一样的. 结果是第一段代码会出错,第二段代码不会出错. 第一段代码的分析: 这段代码的第二句(s1=s1+1)就是简单的两个数字相加,结果赋值给第一个变量. 此时运算结果的数据类型由以下规则依次决定: 1,如果参与相加运算的表达式或数字有double类型,则结果是double类型 2,如果参与相加运算的

Java千问:关于Java语言复合赋值运算符的两个问题,快来瞧瞧!

我们知道,在Java以及很多高级编程语言当中,都有一种运算符叫做复合赋值运算符.复合赋值运算符由两个符号组成,它所能完成的运算操作也分为两步:第一步是运算,第二步是赋值.比如说:上面的这两条语句相当于但是,如果碰到下面这样的情况,a的值该应该是多少呢?有人认为应该按以下方式来计算,因为我们都知道,在四则运算规则中,遵循"先乘除,后加减"的原则按照这样的方式来计算,得到a的值应该是7,但实际运行程序所得到的结果是8.这是为什么呢?就是因为复合赋值运算符在完成运算的时候,遵循一个规则:把&

复合赋值运算符之谜

先看一个例题: //添加一个声明 while(i != 0){ i>>>=1; } 在添加声明处添加一行代码,使得上面的循环成为死循环 long i = -1: 或者 int = -1; 不能啊!!! 试试short i = -1: 出现什么了? 死循环了!!!! 既然出现了诡异现象(至少对于我是诡异) 为什么呢? 查阅资料发现复合赋值运算的一个规范 在复合赋值运算时,先将小于int的类型提升int型(即拓宽类型),然后进行计算,最后需要窄化的再窄化为指定的运算. 也就是说当i的类型为s

复合赋值运算符

1.+= 例: int age=18; age+=3;//一般写法age=age+3; Console.WriteLine("age={0}",age); Console.ReadKey(); 输出结果:age=21 2.-= int age=18; age-=3;//一般写法age=age-3; Console.WriteLine("age={0}",age); Console.ReadKey(); 输出结果:age=15 3.*= int age=18; age

复合赋值运算符的使用

public class C2_7 {    public static void main(String args[])     {        int x,y,z;         x=1;         y=2;         z=3;         x+=y;//此时,x=3         y%=x;//此时,y=2         z/=x;//此时,z=1         System.out.print("\tx="+(x+=y));//此时,x=5      

Kotlin中复合赋值(+=,-=,……)运算符重载

本篇建立在已经了解了kotlin中运算符重载的理念以及如何实现的基础上. 来我们首先写一个简单的类,然后重载运算符+,+=,-,-=这个几个运算符.代码如下: data class Point(var x: Int, var y: Int) { operator fun plus(point: Point): Point { return Point(this.x + point.x, this.y + point.y) } operator fun plusAssign(point: Poin

JavaScript的位运算符、赋值运算符、其他运算符、三元运算符、运算符优先级

一. 位运算符 在一般的应用中,我们基本上用不到位运算符.虽然,它比较基于底层,性能和速度会非常好,而就是因为比较底层,使用的难度也很大,底层运算是转换成二进制进行运算的. 位运算符有七种,分别是:位非 NOT(~).位与 AND(&).位或 OR(|).位异或 XOR(^).左移(<<).有符号右移(>>).无符号右移(>>>). var box = ~25; //-26 var box = 25 & 3; //1 var box = 25 |

C语言:赋值运算符

1.简单赋值运算符 int a = 5; 赋值运算符的结合方向是:从右到左,而且优先级比算术运算符低 2.复合赋值运算符 +=:加赋值运算符.如a+=3+1,等价于 a=a+(3+1) -= :减赋值运算符.如a-=3+1,等价于 a=a-(3+1) *=:乘赋值运算符.如a*=3+1,等价于 a=a*(3+1) /=:除赋值运算符.如a/=3+1,等价于 a=a/(3+1) %= :取余赋值运算符