`
kingxianstar
  • 浏览: 19662 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

X+=Y和X=X+Y两种实现加法方式的区别

阅读更多
     为了方便程序员进行频繁的赋值操作,Java提供了很多扩展赋值运算符,例如+=、-=、/=、*=等。具体的使用示例如下
int a=10;
a+=1;
System.out.println(a);

     上述代码的输出结果为11。“a+=1”的作用与“a=a+1”等价,在一般情况下两种语句是可以通用的,但是有些情况却不可以通用。代码如下:
short s=3;
s+=1;//编译通过
s=s+1;//编译发生错误


      在上述代码中,s=s+1语句编译错误的原因是因为右边s+1表达式的计算结果为int类型,而左边变量的类型是short类型,违反了自动转换原则,需要强制类型转换。s+=1语句编译正确的原因是“+=”运算在java环境会自动根据变量的类型进行类型的强制转换。
      通过上述的示例可以知道,x+=y语句等价于“x=x+y”和类型强制转换两个操作
分享到:
评论

相关推荐

    表达式求值(最重要).cpp

    x和y均不大于10000000,op可以是+,-,*,/,%中的任意一种,分表表示加法,减法,乘法,除法和求余。 除法按整数除法求值,输入数据保证除法和求余运算的y值不为0。 输出说明 输出表达式的值。 输入样例 ...

    定点补码一位乘法器的设计.rar

    技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:X×Y=X×(-1+Yi×2i) (逐项展开则得)=X×[-Y0+Y1×2-1+Y2×2-2+…+Yn×2-n]=X×[-Y0+(Y1-Y1×2-1)+(Y2×2-1-Y2×2-2)+…+...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    if( this.x==x && this.y==y ) return true; else return false; } void print(){ System.out.println(name+" : x = "+x+" y = "+y); } } public class UsingObject{ public static void main( String args[] ){...

    C语言程序设计标准教程

     对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量...

    函数式python编程.docx

    例如,我们可以使用lambda表达式来定义一个简单的加法函数: add = lambda x, y: x + y 这个lambda表达式定义了一个函数,它接受两个参数x和y,并返回它们的和。我们可以像使用普通函数一样使用它: result = add(2,...

    计算机组成原理 练习题与答案 本科

    分别按下述两种方式写出C4C3C2C1的逻辑表达式。 (1)串行进位方式 (2)并行进位方式 五、(9分)一台处理机具有如下指令格式:。 6位 2位 3位 3位 OP X 源寄存器 目标寄存器 地址 其格式表明有8个通用寄存器...

    函数、内存、一维数组、二维数组

    •需求:定义一个功能,可以实现两个整数的加法运算。 •分析: •该功能的运算结果是什么?两个数的和,也是一个整数(int) •在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确定的。(两个...

    SuperNotepad

    20) 两种方式打开拖入文档 (注:请拖到[标题栏]或[状态栏],否则识别为链接; 在[设置]中可配置拖入文档打开方式[插入/新建]) 21) 支持多种格式UTF-8, BIG5, GB2321, Unicode,Unicode big edian, Rich Text, ...

    JAVA 北极星二维变换 矩阵做法

    北极星的平移、旋转、缩放、错切、对称。...“对称”,有关于x、y、原点对称三种变换,由于图形具有一定的对称性,所以把图形先移开一段距离,然后再做对称,为了能够与对称后的图形对比,没有擦除原来的图形。

    黄冈中学高一数学教案

     1、在推导等差数列前n项和公式的过程中用到了数列求和的两种基本思想方法——分组求和法及倒序相加法.  2、前n项求和公式为  当d≠0时,Sn是关于n的二次函数且常数项为0,可以运用二次函数的观点和方法来...

    freemarker总结

    运算符的用法有如下两种: variable!或variable!defaultValue,第一种用法不给缺失的变量指定默认值,表明默认值是空字符串,长度为0的集合,或者长度为0的Map对象. 使用!指定默认值时,并不要求默认值的类型和变量类型...

    数据结构(C++)有关练习题

    <br>实验二 单链表结构及计算 实验目的: 通过实验掌握下列知识: 1、熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2、继续熟悉VC编程、编译和调试环境; 内容及步骤:...

    2025NOIP普及组.rar

    左两点的路径数目之和,因此我们可以使用逐列(或逐行)递推的方法来求出从起始顶点到重点的路径数目,即使有障碍(我们将马的控制点称为障碍),这一方法也完全适用,只要将到达该点的路径数目置为0即可,用F[i,j]...

    会计理论考试题

    5.窗口右上角的"X"按钮是___C___。 A、最小化 B、最大化 C、关闭 D、选择 6.为了以最佳方式、最少的重复,为多种应用服务,把数据集中起来以一定的组织方式存在计算机的外存储器中,就构成 __D___ 。 A、FoxBASE B、...

    matlab四阶龙格库塔法代码-RMIS:管理信息系统

    一种四阶方法,该方法利用显式的Runge-Kutta方法来实现“慢速”动力学,以及一种显式(ERK)(对角线)隐式多速率问题中的“隐式”(DIRK)或全隐式(IRK)Runge-Kutta方法用于“快速”动力学:y'(t)= f_slow(t,...

    java经典面试2010集锦100题(不看你后悔)

    C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。 D) Java语言中的多态的含义可以表达为:对外一个接口,内部多种实现。Java语言支持两种多态:运行时多态和编译...

    计算机组成原理阵列乘法器课程设计报告.doc

    课 程 设 计 "教 学 院 "计算机学院 " "课程名称 "计算机组成原理 " "题 目 "阵列乘法器 " "专 业 "计算机科学与技术 " "班 级 "2011级计科(X)班 " "姓 名 "XXX " "同组人员 "XXX XXX XXX " "指导教师 "XXX " "2013 ...

    同学的打包代码

    一、定义点(point)类,包含点的坐标x和y;通过继承点类派生出线段(line)类;通过线段(line)类的组合定义三角形(triangle )类。 二、实现功能 1、设计菜单实现功能选择; 2、输入三角形的三个顶点坐标;...

Global site tag (gtag.js) - Google Analytics