Java语法介绍(二):运算符

Java语法介绍(二):运算符,第1张

Java语法介绍(二):运算符,第2张

1:优先级

优先级是指同一个公式中多个运算符的执行和顺序。同一级别的操作员具有相同的优先级。当具有相同优先级的操作符相遇时,根据组合确定操作顺序。下面按优先级从高到低列出了操作员。同一行中的运算符具有相同的优先级。


。[]()组合从左到右
++-!~从左向右绑定
*/%从左向右绑定
+-从左向右绑定
> >从左向右绑定
==从左向右绑定
&从左向右绑定
&&从左向右绑定
||从左向右绑定
?:从右向左装订
=从右向左装订

比如对于表达式:a = b+c*d/(c d),由于括号的先后,先算c d,再算c*d,再除以c d,最后将上述结果与b之和存放在变量a中。

2:整数运算符

整数运算符根据操作数的多少可以分为一元和二元。一元运算符一次处理一个变量,二元运算符一次处理两个变量。对于运算,如果有一个变量或操作数是长整数,那么结果肯定是长整数。否则,即使操作数尚未确定为字节、短整数或字符,运算结果也是整数。下表显示了一元运算符。

运算符实例
-变整数符号-i
~按位运算:not ~i
++加1i++
-减1i-

注意:一元否定运算符(-)用于改变整数的符号。逐位求反会将变量的所有位从1更改为0,将所有位从0更改为1。加减(++,-)将变量的值加1或减1。
下面是一个具体的例子:

int I = 0;
int j = 1;
for(I = 1;I {
j-;
system . out . println(I+" "+j+" ");
}

一元运算符通过改变它们所作用的变量值来执行。对于一元求反和按位求反,变量的值不变,而对于加法和减法(++,-),量的值是变化的,例如:

int i=10,j=10,k=10,l = 10
system . out . println(I+" "+j+" "+k+" "+l+" ");
j++;
I-;
~ k;
-l;
system . out . println(I+" "+j+" "+k+" "+l+" ");

注意:J和I被改变并且它们的新值被打印出来,但是K和L仍然是原始值。在复合表达式中使用一元求反和按位求反运算时,实际上是在使用临时存储操作数的新值。

+和-都是前运算符和后运算符,也就是说,如果在复合语句中使用,它们可以放在(++x)操作数之前或之后,例如:

I = x++;或者I = ++ x;
然后在第一条语句中,X把值赋给I然后加1,而在第二条语句中,X加1然后把X的新值赋给I.
第二种类型的整数运算符是二元运算符,它不改变操作数的值,但返回一个必须赋给变量的值。下表列出了二元运算符。

运算符示例
+加法运算a+b
-减法运算a-b
*乘法运算a * b
/除运算a/b
%模运算a%b
& AND运算A&B [ ]| or运算a | b
异或运算a b
右移a>>b
> >右移a>>>b


注:> >和> > >的基本功能是右移,但> >用符号位填充右移后向左的空位,而> > >用零填充右移后向左的空位。

还有一种运算,形如:j-=i,其中-=是二元运算-与赋值运算=的复合运算,等价于j = j-i,这种复合方法适用于所有二元运算符。

下面是一些关于整数运算的进一步解释。首先,整数除法将整数四舍五入到0附近;其次,如果除以0或以0为模,程序在运行时会被迫停止。如果您的操作结果超过最小限制,或下溢,结果将为0。如果超过了极限,就会导致结果的缠绕。

3:布尔运算符

还有其他可以产生布尔结果的运算符。我们称之为布尔运算符。下表列出了这些运算符。

运算符示例
<小于a >大于a>b
>大于或等于a>=b
==等于a==b
!=不等于a!=b

这里指出,等式运算符= =可能会给你带来很多麻烦。很多人在比较两个值的时候经常把等号=用错,所以变成了赋值运算。所以编程中比较值的时候一定要注意使用= =这个事实。布尔类型本身有几个逻辑运算符,可以对布尔类型的数据进行运算:!,&&,//

事实上,如果你把布尔型的值true看成1,false看成0,那么对于同一个运算符,整数运算的规则也适用于布尔型。

布尔运算符中还有一个三元运算符,其格式如下:

操作数?语句1:语句2
在这个公式中,首先计算操作数的真实性。如果为真,则执行语句1;如果为假,则执行语句2。以下代码给出了此操作的一个示例:

(a>b)?甲:乙;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Java语法介绍(二):运算符

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情