j**a都有哪些运算符及其用法

时间:2021.11.06 发布人:Isabella213

j**a都有哪些运算符及其用法

已解决问题

谷歌Isabella213用户在2021.11.06提交了关于“oppoj**a都有哪些运算符及其用法”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-03T17:21:37。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  


J**a的

可分为4类:算术

、关系

符。

1.算术运算符

J**a的算术运算符分为一元运算符和二元运算符。一元运算符只有一个

;二元运算符有两个

,运算符位于两个

之间。算术运算符的操作数必须是数值类型。

(1)一元运算符:

一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。

加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。

例如:

inti=6,j,k,m,n;

j=+i;//取原值,即j=6

k=-i;//取负值,即k=-6

m=i++;//先m=i,再i=i+1,即m=6,i=7

m=++i;//先i=i+1,再m=i,即i=7,m=7

n=j--;//先n=j,再j=j-1,即n=6,j=5

n=--j;//先j=j-1,再n=j,即j=5,n=5

在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。

(2)二元运算符

二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、减、乘、除

,%是求两个操作数相除后的余数。

%求余操作举例:

a%b=a-(a/b)*b

取余运算符既可用于两个操作数都是整数的情况,也可用于两个操作数都是

(或一个操作数是

)的情况。当两个操作数都是

时,例如7.6%2.9时,计算结果为:7.6-2*2.9=1.8。

当两个操作数都是int类型数时,a%b的计算公式为:

a%b=a-(int)(a/b)*b

当两个操作数都是long类型(或其他整数类型)数时,a%b的计算公式可以类推。

当参加二元运算的两个操作数的

不同时,所得结果的

与精度较辅或位数更长)的那种

一致。

例如:

7/3//整除,运算结果为2

7.0/3//除法,运算结果为2.33333,即结果与精度较高的类型一致

7%3//取余,运算结果为1

7.0%3//取余,运算结果为1.0

-7%3//取余,运算结果为-1,即运算结果的符号与左操作数相同

7%-3//取余,运算结果为1,即运算结果的符号与左操作数相同

2.关系运算符

关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于()、左移(>)。

位运算的位与(&)、位或(|)、位非(~)、位

(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。

位运算示例

运算符名称示例说明

&位与x&y把x和y按位求与

|位或x|y把x和y按位求或

~位非~x把x按位求非

^位异或x^y把x和y按位求异或

>>右移x>>y把x的各位右移y位

右移x>>>y把x的各位右移y位,左边填0

举例说明:

(1)有如下程序段:

intx=64;//x等于

的01000000

inty=70;//y等于

的01000110

intz=x&y//z等于

的01000000

即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。

(2)右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器**采用

表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段:

intx=70;//x等于二进制数的01000110

inty=2;

intz=x>>y//z等于二进制数的00010001

即运算结果为z等于二进制数00010001,即z等于

17。

对于如下程序段:

intx=-70;//x等于二进制数的11000110

inty=2;

intz=x>>y//z等于二进制数的11101110

即运算结果为z等于二进制数11101110,即z等于

-18。要透彻理解右移和左移操作,读者需要掌握整数机器数的

表示法。

(3)0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。

5.其他运算符

(1)赋值运算符与其他运算符的简捷使用方式

赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简

算符,从而可以简化一些常用表达式的书写。

赋值运算符与其他运算符的简捷使用方式

运算符用法等价于说明

+=s+=is=s+is,i是数值型

-=s-=is=s-is,i是数值型

*=s*=is=s*is,i是数值型

/=s/=is=s/is,i是数值型

%=s%=is=s%is,i是数值型

&=a&=ba=a&ba,b是逻辑型或整型

|=a|=ba=a|ba,b是逻辑型或整型

^=A^=ba=a^ba,b是逻辑型或整型

is,i是整型

>>>=s>>>=is=s>>>is,i是整型

(2)方括号[]和圆括号()运算符

方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。

圆括号()运算符用于改变表达式中运算符的

(3)字符串加(+)运算符

当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。如对于如下程序段:

intmax=100;

System.out.println("max="+max);

计算机屏幕的输出结果为:max=100,即此时是把变量max中的整数值100转换成字符串100输出的。

(4)

(?:)

(?:)的语法形式为:

?:

的运算方法是:先计算的值,当的值为true时,则将的值作为整个表达式的值;当的值为false时,则将的值作为整个表达式的值。如:

inta=1,b=2,max;

max=a>b?a:b;//max等于2

(5)

符能将一个表达式的类型强制转换为某一指定**类型,其语法形式为:

()

(6)对象运算符instanceof

对象运算符instanceof用来测试一个指定对象是否是指定类(或它的子类)的实例,若是则返回true,否则返回false。

(7)点运算符

点运算符“.”的功能有两个:一是引用类中成员,二是指示包的层次**。

6.运算符的

以下按

从高到低的次序列出J**a语言中的所有运算符,表中结合性一列中的“左?右”表示其运算次序为从左向右,“右?左”表示其运算次序为从右向左。

优先级运算符结合性

1.[]();,

2++――+=!~+(一元)-(一元)右?左

3*/%左?右

4+(二元)-(二元)左?右

5>>>>左?右

6<>=instanceof左?右

7==!=左?右

8&左?右

9^左?右

10|左?右

11&&左?右

12||左?右

13?:右?左

14=*=/=%=+=-==>>>=&=^=|=右?左