运算符】【Web前端基础】赋值运算符的优先级

2020-12-25 11:42发布

12条回答
summer
2楼 · 2020-12-25 14:30

算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。


关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > <= >= 】属于优先级第六级,等于运算符【==】、不等于运算符【!=】属于优先级第七级。


赋值运算符【= += -= *= /= %= >>= <<.= &= |= ^=】属于优先级第第十四级。


所以,优先级排序为:算术运算符高于关系运算符高于赋值运算。


HARPPRTのIT
3楼 · 2020-12-25 15:49

优先级排序为:算术运算符 > 关系运算符 > 赋值运算。 算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。 关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。

Kindery
4楼 · 2020-12-25 16:53

1)前4种关系运算符(<,<=,>,>=)的优先级相同,后2种也相同。前者高于后者。


(2)关系运算符的优先级低于算数运算符。


(3)关系运算符的优先级高于赋值运算符。


一条哈士奇
5楼 · 2020-12-25 17:22

如果在程序中,要改变运算顺序,可以使用()。

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^


敦敦宁
6楼 · 2020-12-26 10:52

一、运算符的优先级

在一系列复杂的运算符中,优先级较高的运算符总是先被运算,然后才按照优先级的高低依次完成所有计算,在前面的章节中我们也简单了提到了一些运算符的优先顺序,其中优先级最高的是小括号括号:”(...)”,多个括号分割运算表达式会让一个复杂的表达式变得更具有可读性。其他的运算符按照优先级别的高低排序分别是:自加/减运算符、 算术运算符、比较运算符、逻辑运算符、赋值运算符。具体请参考下表:

顺序运算符1.括号,如 ( ) 和 [ ]2.一元运算符,如 -、++、- -和 !3.算术运算符,如 *、/、%、+ 和 -4.关系运算符,如 >、>=、<、<=、== 和 !=5.逻辑运算符,如 &、^、|、&&、||6.条件运算符和赋值运算符,如 ? :、=、*=、/=、+= 和 -=当两个运算符拥有同样优先级时跟代数的四则运算一样,从左到右依次执行表达式。当要表示一个比较复杂的运算表达式时,最好多使用小括号,可以使用表达式更加清晰,对于一些比较复杂的,尽量可以分开多个步骤,这样虽然可能会降低效率,但是可以提高代码的可读性。比如下面这个例子:

int i=1,j=2;
int a=i+++j+++i++;
System.out.println(a);

看着就让人头晕了,我们可以修改以下这样。

int a=(i++)+(j++)+(i++);

二、类型转换

我们在写运算符时,经常会碰到一个运算符中包含好几个不同数据类型的参数,这就涉及到数据类型的转换。java有两种类型的转换,分别是自动类型转换和强制类型转换。

1、自动类型转换

一般而言,java编译器还是比较智能的,对不同数据类型的参数,会自动转换类型,为了不至于数据的丢失,一般是较窄的数据类型转换为较宽的数据类型。也就是说如果一个short类型和一个int类型相加,那么结果就会自动转换为int类型,因为int比short数位要宽,再有如果int类型和float类型相加,那么结果是float类型,因为浮点型比整型所能表示的数据要宽。另外我们也可以把一个较窄的数据类型直接赋值给一个较宽的数据类型。总结一下,在赋值或者计算时,只要满足以下条件,就会发生自动类型转换:

(1)两种类型兼容;

(2)目标类型大于源类型;

例如:

(1)byte、char和 short 型值可提升为 int 型。如果一个操作数为 long 型,则整个表达式结果为 long 型

(2)如果一个操作数为 float 型,则整个表达式结果为 float 型。而如果一个操作数为 double 型,则整个表达式结果为 double 型

2、 强制类型转换

强制转换用于显式类型转换。但是强制类型转换需要小心使用,因为如果被转换的值的数据类型大于其目标类型,就会丢失部分信息。类型强制转换使程序将变量视为某种类型,尽管此变量中包含的是另一类型的数据,其具体格式如下:

(类型名)表达式

示例:

float a = 346.756565f;
int b = (int) a + 10; // 将 c 转换为整型
System.out.println(b);

最后的结果是356,浮点型a后面的所有的小数都会丢失。


小小123
7楼 · 2020-12-27 17:08

乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。

帅帅马
8楼 · 2020-12-27 20:26

算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。


关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > <= >= 】属于优先级第六级,等于运算符【==】、不等于运算符【!=】属于优先级第七级。


赋值运算符【= += -= *= /= %= >>= <<.= &= |= ^=】属于优先级第第十四级。


所以,优先级排序为:算术运算符高于关系运算符高于赋值运算。


yjh
9楼 · 2020-12-28 10:53

1)前4种关系运算符(<,<=,>,>=)的优先级相同,后2种也相同。前者高于后者。

(2)关系运算符的优先级低于算数运算符。

(3)关系运算符的优先级高于赋值运算符。


相关问题推荐

  • 回答 2

    比较运算符 名称说明示例结果==等于比较两个数值(数字、布尔)是否相同9==9true8==7false!=不等于比较两个数值(数字、布尔)是不同6!=6false5!=8true大于检查左边的数是否大于右边的数9>6true6>9false=6true...

  • 回答 1

    ()1!(很高)、++、--2先*、/、%后+、-3>、>=、

  • 回答 15

    =     不能用于 NULL的比较  和 = 类型,,不同在于 值魏NULL 也可以正确的比较;BETWEEN 的用法,a BETWEEN min  ADD max ; 相当于是 a在 min和 max之间;可以等于min和max;in  的用法 a in(1,2,3,4,5) ,a 是否存在 1 2 3 4 5  中;a  IS  NULL ;...

  • 回答 9

    =:把右边的内容赋值给左边+=,-=,*=,/=,%=:把左边的和右边的操作后赋值给左边。注意:        +=隐含了强制类型转换。        x+=y;等价与:x = (x的数据类型)(x + y);

  • 回答 10

    不是算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > = 】属于优先级第...

  • 回答 13

    算术运算符中,乘法运算符【*】、除法运算符【/】、取余运算符【%】属于优先级第三级,加法运算符【+】、减法运算符【-】属于第四级。关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其中,关系运算符【< > = 】属于优先级第六级...

  • 回答 5

    基本的赋值运算符是=。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。

  • 回答 13

    当然是右结合。譬如这个表达式: a == b ? a : b ? c : d它的结合是这样的 a == b ? a : (b ? c : d)如果是左结合,它的结合是这样的: a == (b ? a : b) ? c : d

  • 回答 8

    1、= 赋值运算 符:变量=表达式,如:a=3,将a的值赋为3;2、/= 除后赋值:变量/=表达式,如:a/=3,即a=a/3;3、*= 乘后赋值:变量*=表达式,如:a*=3,即a=a*3;4、%= 取模后赋值:变量%=表达式,如:a%=3,即a=a%3;5、+= 加后赋值:变量+=表达式,如:a+=...

  • 回答 8

    一、> :右移运算符,num >> 1,相当于num除以2三、>>> :无符号右移,忽略符号位,高位都以0补齐,无符号右移运算符>>> 只是对32位和64位的值有意义四、& :与运算,符号两边都为true,结果才是true,否则为false;对于数字,可将数字转换为2进制形式去理解,...

  • 回答 4

    所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。乘法和加法是两个可结合的运算,也就是...

  • 回答 5

    一.算术运算符算数运算符是完全符合数学运算的规律,其中包括:+ (加法运算)、- (减法运算)、*(乘法运算)、/ (除法运算)、%(取余)、++(自加运算)、–(自减运算)、++i; i先+1再参与运算、--i; i先-1再参与运算、i++; 先运算再+1、i--; 先运算再-1二、关系比...

  • 回答 1

    typeof 运算符返回一个用来表示表达式的数据类型的字符串。typeof expression ;expression 参数是需要查找类型信息的任意表达式。说明typeof 是一个一元运算符,放在一个运算数之前。typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: ...

  • 回答 1

    以下运算符优知先级顺序依次递增: Lambda  #运算优先级最低逻辑道运算符: or逻辑运算符: and逻辑运算符:not成员测试: in, not in同一性专测试: is, is not比较: =,!=,==按位或: |按位异或: ^按位与: &移位: 加法与减法: + ,-乘法、除法与...

  • 回答 1

    如下:

没有解决我的问题,去提问