学习Java运算符
在程序中经常出现一些特殊符号,如+ 、- 、* 、= 、> 等,这些特殊符号被成为运算符。算术运算用于对数据进行算术运算、赋值运算和比较运算等。在Java中,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符等。
一、算数运算符
在数学运算中最常见的就是加减乘除,这4种运算符称为四则运算。Java中算术运算就是用来处理四则运算的符号,算术运算符是最简单、最常用的运算符号。
(1)
在进行自增 (++ )和自减( 一 )运算时,如果运算符++或 -- 放在操作数的前面,则先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面,则先进行其他运算再进行自增或自减运算。
int a = 1;
int b =2;
int x = a + b++;
System.out.print("b=" +b);
System.out.print("x=" +x);
上述代码的运行结果:b=3,x=3。在上述代码中定义了3个int类型的变量a,b,x 。其中a=1,b=2。当进行“a+b++”运算时,由于运算符++写在了变量b的后面,则先进行a+b运算,再进行变量b的自增,因此变量b在参与加法运算时其值仍然为2,x的值应为3。变量b在参与运算之后会进行自增,因此b的最终值为3。
(2)
在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。例如,2510/1000属于整数之间相除、会忽略小数部分,得到的结果是2,而2.5/10的结果为0.25 。
3500 / 1000 * 1000
上述表达式结果为3000。因为表达式的执行顺序是从左到右,所以先执行除法运算3500/1000得到的结果为3 。3再乘以1000,得到的结果自然就是3000了。
(3)
进行取模(%)运算时,运算结果的正负取决于被模数 ( %左边的数 ) 的符号,与模数 ( %右边的数 ) 的符号无关。例如, ( -5 )%3=-2,而5%( -3 )=2。
二、赋值运算
赋值运算符的作用就是将常量、变量或者表达式的值赋给某个变量。
在赋值过程中,运算顺序从右往左,将右边表达式的结果赋值给左的变量。在赋值运算符的使用中,要注意以下几个问题。
(1)
在Java中可以通过一条赋值语句对多个变量进行赋值,具体示例如下:
int x,y,z ;
x = y = z = 5; // 为3个变量同时赋值
在上述代码中,用一条赋值语句将变量x、y、z的值同时赋值为5 。需要注意的是,下面的这种写法在Java中是不可以的。
int x = y = z 5; // 这样写是错误的
(2)
除了“=”,其他运算符都是特殊的赋值运算符,以“+=”为例,x+=3就相当于x=x+3,表达式首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可依次类推。
三、比较运算
比较运算符用于对两个数值或者变量进行比较,比较运算结果是一个布尔值,即true或 false 。
需要注意的是,在比较运算中,不能将比较运算符“ == ” 误写成赋值运算“ = ” 。
四、逻辑运算符
逻辑运算符用对于布尔类型的数据进行操作,其结果仍是一个布尔值。
在使用逻辑运算符的过程中,需要注意以下几个细节。
(1)逻辑运算符可以对结果为布尔值的表达式进行运算。例如,x>3&&y!=0 。
(2)运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为 false。但运算符“&”和“&&”在使用上还有一定的区别。在使用“&”进行运算时,不论左边为true还是false,右边的表达式都会进行运算。在使用“&&”进行运算时,若左边为false,右边的表达式就不再进行运算,因此“&&”称为短路与。
五、运算符的优先级
要明确表达式中所有运算符参与运算的先后顺序。