快速业务通道

Java编程那些事儿24—赋值运算符 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

Java编程那些事儿24—赋值运算符

时间:2010-02-27 csdn博客 陈跃峰

4.4 赋值运算符

赋值运算符是指为变量或常量指定数值的符号。最基本的赋值运算符是“=”。

由于Java语言是强类型的语言,所以赋值时要求类型必须匹配,如果类型不匹配时需要能自动转换为对应的类型,否则将报语法错误。示例代码:

byte b = 12;   //类型匹配,直接赋值 int n = 10;    //类型匹配,直接赋值 double d = 100;//类型不匹配,系统首先自动将100转换成100.0,然后赋值 char c = -100;  //类型不匹配,无法自动转换,语法错误

需要强调的是,只能为变量和常量赋值,不能为运算式赋值,例如:

int a = 10; int b = 2; a + b = 100;//不能为运算式a + b赋值,语法错误

常量只能赋值一次,否则也将出现语法错误,例如:

final int N = 10; N = 20;//常量只能赋值一次,语法错误

在基本的赋值运算符基础上,可以组合算术运算符,以及后续将学习的位运算符,从而组成复合赋值运算符。赋值运算符和算术运算符组成的复合赋值运算符如下表4-4所示。

表4-4 复合赋值运算符

符号 名称 功能说明
+= 加等 把变量加上右侧的值然后再赋值给自身
-= 减等 把变量减去右侧的值然后再赋值给自身
*= 乘等 把变量乘以右侧的值然后再赋值给自身
/= 除等 把变量除以右侧的值然后再赋值给自身
%= 取余等 把变量和右侧的值取余然后再赋值给自身

实际使用示例:

int n = 2; n += 3;

说明:计算以前n的值是2,也就是把n + 3的值,也就是5再赋值给n,经过运算以后n的值为5,因为该代码只执行一次,所以不会导致循环。

依次类推,其它的复合赋值运算符也是这样:

int n = 10; n -= 2;//则n的值是8 n *= 3;//因为n的初值是8,则n运算后的结果是24 n /= 5;//因为n的初值是24,则n运算后的值是4

注意:复合赋值运算不会改变结果的类型,所以在有些时候运算在逻辑上会出现错误,但是符合计算中数值的表述。例如:

byte b = 127; b += 1; System.out.println(b);

根据前面的介绍,byte类型的取值区间是-128~127,由于复合赋值运算符不改变结果的类型,则导致结果是-128,而不是128。原因如下:

lbyte类型值127的机器数是01111111,0表示正数,后续的数值表示127

l该数值加1后,得到的数值是10000000,二进制加法

l而10000000在byte类型中恰好是-128的机器数表示形式

其它类型的符合运算符也可能存在类似的情况,使用时需要注意。

文章来源:http://blog.csdn.net/Mailbomb/archive/2008/05/23/2473815.aspx

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号