运算符=与==在程序中经常使用,请简述运算符=与==有什么区别?
专家解答
这两个运算符经常被混淆,很多程序开发人员在相等条件判断时使用了赋值运算符,即=符号,从而造成程序错误,所以关于这两个运算符的面试题出现的几率很高。=是赋值运算符,用于为变量或常量赋值,而==则是表示相等关系的关系运算符,通常用于进行条件判断。赋值运算符:
赋值运算符=是双目运算符,其作用就是为变量赋值,符号是=及其扩展运算符+=、-=、*=、/=、%=、&=和^=等。其中=用于把右边表达式的值赋值给左边的变量;而扩展运算符的作用是用左边变量的值和右边表达式的值进行相应运算后,再把运算结果赋值给左边的
变量。
例如:
longlen=5000 //把5000赋给变量len,所以len的值是5000
len+=500 //相当于len=len+500,所以len的值是5500
关系运算符。
关系运算符用于比较两个值的大小关系,运算结果是逻辑值真(true)或逻辑值假(false)。关系运算符包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6个。。关系运算符的用法和说明如表3.2所示。
表3.2关系运算符的用法及说明
"="是赋值操作符,它的操作是把符号右边的变量或者常量或者对象的值赋值给符号右边的变量。"=="是算数运算符中的一个操作符,主要用在判断中,如if(a
==
b){...}这条语句中,a
==
b语句的意思是先比较a和b的值是否相等(java中的相等不止是有值相等,还有对象的引用相等,这在比较两个值相等时需要注意和分清),然后返回比较的结果(只有两张,true和false)。