问题阐述
运算符=与==在程序中经常使用,请简述运算符=与==有什么区别?
解答
这两个运算符经常被混淆,很多程序开发人员在相等条件判断时使用了赋值运算符,即=符号,从而造成程序错误,所以关于这两个运算符的面试题出现的几率很高。=是赋值运算符,用于为变量或常量赋值,而==则是表示相等关系的关系运算符,通常用于进行条件判断。
赋值运算符:
赋值运算符=是双目运算符,其作用就是为变量赋值,符号是=及其扩展运算符+=、-=、*=、/=、%=、&=和^=等。其中=用于把右边表达式的值赋值给左边的变量;而扩展运算符的作用是用左边变量的值和右边表达式的值进行相应运算后,再把运算结果赋值给左边的
变量。
例如:
long
len=5000; //把 5000 赋给变量 len,所以 len 的值是 5000
len+=500; //相当于
len=len+500,所以 len 的值是 5500
关系运算符。
关系运算符用于比较两个值的大小关系,运算结果是逻辑值真(true)或逻辑值假(false)。关系运算符包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6
个。。关系运算符的用法和说明如表 3.2 所示。
表 3.2 关系运算符的用法及说明
点评
该问题主要考查读者对 Java
基础知识的掌握程度,对于初学者来说,在进行等于条件判断时,经常使用赋值运算符=对两个表达式进行大小比较,这就导致条件判断出错,因为进行条件判断时,表示相等关系应该使用关系运算符==,这也是初学者经常犯的错误,
例如判断
a 与 b 相等关系的正确写法是 if(a==b){},而初学者经常会写成 if(a=b){},这样程序就会出错。