-
2021-02-28 19:05:03
在Java中,运算符是不可缺少的一份子,它支撑着Java的各种算法操作,与Java不可分离。但在Java运算符中也有优先级分别,你知道都是谁先谁后吗?跟小编一起来看看吧。
Java中的优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除,后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))
& 7.
逻辑运算最后计算。
例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。
再如,x = 7 + 3 * 2,这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。
下面具有最高优先级的运算符在最上面,最低优先级的在底部。类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 + + - !? 右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> <
关系 >> = <
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 右到左
赋值 = + = - = * = / =%= >> = <
逗号 , 左到右
优先级顺序看完了,我们来通过代码,加强一下:int n = 3>4 ? 100 : 200;
这行的代码运算执行顺序我们来写一下:
1.执行 3>4操作,得到布尔类型false的结果
2.通过结果false,将对应的表达式2的结果200,作为运算的最终结果
3.把200 赋值给变量n
接下来,我们看一个比较复杂的代码:int a = 5;
int b = 3;
int c = 1;
int n2 = (a>b && b>c) ? (c++) : (++c);
这段代码运算执行顺序我们也写一下:
1.小括号优先级高,我们先运算第一组小括号中的代码
1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”
先执行 a>b,得到结果true;
再执行 b>c,得到结果true;
最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true
2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++
先将变量c的原有值赋值给变量n2,即n2值为1;
再将变量c的值自增1,更新为2。
以上就是今天的所有内容了,更多有关Java入门的知识请持续关注本网站了解吧。
更多相关内容 -
java运算符优先级排序
2017-09-22 15:10:34运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 () [] 2 正负号 + - 3 自增自减,非 ++ -- ! 4 乘除,...科技进步——源自每一次善意的分享
运算符的优先级(从高到低)
优先级
描述
运算符
1
括号
() []
2
正负号
+ -
3
自增自减,非
++ -- !
4
乘除,取余
* / %
5
加减
+ -
6
移位运算
<< >> >>>
7
大小关系
> >= < <=
8
相等关系
== !=
9
按位与
&
10
按位异或
^
11
按位或
|
12
逻辑与
&&
13
逻辑或
||
14
条件运算
?:
15
赋值运算
= += -= *= /= %=
16
位赋值运算
&= |= <<= >>= >>>=
如果在程序中,要改变运算顺序,可以使用()。
常用字符与ASCII代码对照表
为了便于查询,以下列出ASCII码表:第128~255号为扩展字符(不常用)
ASCII码
键盘
ASCII 码
键盘
ASCII 码
键盘
ASCII 码
键盘
27
ESC
32
SPACE
33
!
34
"
35
#
36
$
37
%
38
&
39
'
40
(
41
)
42
*
43
+
44
'
45
-
46
.
47
/
48
0
49
1
50
2
51
3
52
4
53
5
54
6
55
7
56
8
57
9
58
:
59
;
60
<
61
=
62
>
63
?
64
@
65
A
66
B
67
C
68
D
69
E
70
F
71
G
72
H
73
I
74
J
75
K
76
L
77
M
78
N
79
O
80
P
81
Q
82
R
83
S
84
T
85
U
86
V
87
W
88
X
89
Y
90
Z
91
[
92
\
93
]
94
^
95
_
96
`
97
a
98
b
99
c
100
d
101
e
102
f
103
g
104
h
105
i
106
j
107
k
108
l
109
m
110
n
111
o
112
p
113
q
114
r
115
s
116
t
117
u
118
v
119
w
120
x
121
y
122
z
123
{
124
|
125
}
126
~
-
Java运算符优先级
2021-08-12 17:15:51Java运算符优先级 每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同...Java运算符优先级
每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。
一、优先级
-
优先级与求值顺序无关。如a+b && b*c,虽然“乘”优先级最高,但这个表达式求值顺序是从左到右。
-
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
-
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
-
基本的优先级需要记住:
-
先算术运算,后移位运算,最后位运算。请特别注意:1
-
逻辑运算最后结合。
-
二、运算符
运算符是一种特殊的函数,它们具有一个或多个操作数并返回相应的值。操作数是被运算符用作输入的值,通常是字面值、变量或表达式。运算符可以是一元、二元或三元的,一元运算符有1个操作数,二元运算符有2个操作数,三元运算符有3个操作数。
Java运算符优先级
运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ – +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 > >>> 从左向右 < >= instanceof 从左向右 == != 从左向右 & 从左向右 ^ 从左向右 | 从左向右 && 从左向右 || 从左向右 ?: 从右向左 = 从右向左 一个特殊的例子:
public class stlye { public static void main(String[] args) { int a=10,b=6; System.out.println("改变之前的数:a="+a+",b="+b); a-=b++; System.out.println("改变之后的数:a="+a+",b="+b); } }
运算结果为:
改变之前的数:a=10,b=6
改变之后的数:a=4,b=7
因为b++运算中先执行++,再返回后置++运算表达式(b++)的返回值(6)给-=运算符。
在这个程序中a-=b++等于a=a-b++=10-6,所以a=4。
-
-
java运算符优先级
2018-06-07 10:21:09java中运算符的优先级 优先级记忆方法:单目乘除为关系,逻辑三目后赋值。...Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结...转载博客:https://blog.csdn.net/pc_gad/article/details/52861838
java中运算符的优先级
优先级记忆方法:单目乘除为关系,逻辑三目后赋值。(前辈总结的)
单目运算符:一次作用一个变量的运算符,又叫一元运算符
单目:单目运算符+ –(正负数) ,++ –,!(逻辑非),~(按位取反)
乘除:算数运算符:* / % + - (* / %优先级肯定是大于+-的)
为:位运算符:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)
关系:关系运算符:> < >= <= == !=
逻辑:逻辑运算符(除!)&& || & | ^
三目:条件运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:= += -= *= /= %= |= &= ^=
说明:前优先级大于后,比如单目运算符~也是位运算符,~的优先级是单目级别的。至于赋值运算符中没有见过的自行测试所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!
PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:
分析:小括号优先级最高,因此
1、 执行 a + 18 ,结果为 30
2、 执行( a + 18 ) % 4 取模,结果为 2
3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24
例子1:
public class HelloWorld {
public static void main(String[] args) {
int m = 5;
int n = 7;
int x=(m*8/(n+2))%m;
System.out.println(“m:” + m);
System.out.println(“n:” + n);
System.out.println(“x:” + x);
}
}运行结果:
m:5
n:7
x:4例子2:
表达式( 11+ 3* 8 ) / 4 % 3 的结果是?
第一步:计算3*8,结果为24;第二步:计算11+3*8,结果为35;第三步:计算(11 + 3 * 8) / 4,结果为8;第四步:计算(11 + 3 * 8) / 4 % 3,结果为2
-
Java运算符的优先级
2022-02-28 15:02:31Java中的表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常优先级由高到低的顺序依次是: 1. 增量和减量运算 2. 算术运算 3. 比较运算 4. 逻辑运算 5.... -
Java运算符及运算符优先级
2021-02-26 16:51:49在数学中有加减乘除基本运算符,在计算机领域的java中也有运算符,运算符是一种功能的符号,在java中进行相关数据的运算,同样的,java运算符和数学中的一样也有运算的先后顺序,那么java运算符优先级是怎样的,是... -
java 运算符的优先级
2020-07-01 15:05:321、 该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级...其实在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号去进行替. -
Java面试题26——运算符优先级
2020-01-09 19:08:341.Java中的运算符优先级: 口诀:单目乘除为关系,逻辑三目后赋值。(大佬总结的) 口诀解释: 单目:指的是例如正负(±)这些一次只作用于一个变量的运算符,又叫一元运算符。 乘除:乘、除、模 ,毫无疑问优先级... -
Java开发笔记(十四)几种运算符的优先级顺序
2018-10-23 16:38:07也就是说,在这四类运算符当中,赋值运算符的优先级最低,那么其他三种运算符的优先级顺序又是如何排列的呢? 首先来看算术运算符,Java中的算术运算符主要包括正号负号、加减乘除,以及取余数... -
C语言运算符优先级关系表
2021-04-17 13:21:04C语言运算符优先级顺序如下所示: 自增运算符 ++ 和自减运算符 --,在作后缀运算符(如表达式 x++)时,较其用作前缀运算符(如表达式 ++x)时,具有较高的优先级。 +、-、* 和 & 运算符记号不但可以当作一元... -
java运算符的优先级
2021-02-27 07:44:58下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)优先级描述运算符1括号()、[]2正负号+、-3自增自减,非++、--、!4乘除,取余*、/、%5加减+、-6移位运算<>、... -
Java运算符优先级及结合性与C语言之比较
2013-05-21 10:11:32今天闲来无事做,列个表比较一下Java与C的运算符及结合性的差别: 其中 instanceof作用是判断对象是否为某个类或接口类型 >>> 无符号的右移 > 有符号的左右移 然后是C语言的: 由上图可知: ... -
7.运算符优先级:运算符优先级从高到低是哪十四级???
2020-06-09 15:05:31跟汤老师学Java笔记: 运算符优先级 完成:第一遍 1.运算符优先级是怎样的? 从高到低的顺序: 1. 小括号( ) 2. 一元运算:自增++、自减- -、非! 3. 乘*、除/、取余% 4. 加+、减 5. 关系运算:> < >= &... -
Java学习_运算符优先级
2016-05-22 18:27:02Java,54中运算符,14个优先级 -
[C#入门] 运算符优先级
2020-12-04 14:23:23但是当代码中包含运算符时,会优先执行运算符对应的优先级。所以,运算符之间是存在优先级的。 例1 加减乘除,和数学中一样,先乘除后加减,如果希望先加减,则要使用"()"小括号包裹起来,这样会先计算括号内的... -
Java数据类型和Java运算符优先级
2019-04-09 15:44:55Java 语言的数据类型分为两种:基本数据类型和引用数据类型。 (1) 基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 ... -
Python运算符优先级规则有哪些?
2022-02-12 19:20:53在之前的知识点中我们已经了解各种类型的Python运算符,正如四则运算有其优先级规则,Python的各类运算符之间也同样有优先级的排序。 以下表格列出了从最高到最低优先级的所有运算符: 运算符 描述 ** 指数 (最高... -
Java中运算符的优先级(高到低)
2021-09-09 18:51:53提示:如果在程序中,要改变运算顺序,可以使用() 同级运算符从左往右! -
运算符的优先级顺序
2018-07-15 21:31:26运算符优先级口诀:单目算术位关系,逻辑三目后赋值。 单目:+ +、- - 算术:+、-、*、/、% 位:位移运算符:<<(左移位)、>>(带符号右移位)、>>>... -
java运算符的优先级别
2019-07-03 19:10:00一、运算符的优先级 运算符按照优先级别的高低排序分别是:自加/减运算符、 算术运算符、比较运算符、逻辑运算符、赋值运算符。具体请参考下表: 顺序 运算符 1. 括号,如 ( ) 和 [ ] ... -
java中运算符的优先级
2021-04-08 20:40:14java中运算符的优先级 优先级记忆方法:单目乘除为关系,逻辑三目后赋值。(前辈总结的) 单目运算符:一次作用一个变量的运算符,又叫一元运算符 单目:单目运算符+ –(正负数) ,++ –,!(逻辑非),~(按位取反... -
【Python入门与进阶】运算符与运算符优先级
2020-03-03 16:48:29【转发】 【Python入门与进阶】运算符与运算符优先级 0:导语 》》a:加减乘除小学都会,重点看下,有的符号有特殊的含义 比如加号 》》b:三元运算行比较特殊 》》c:运算符的优先级,记住常用的,其他查表。 1:... -
Java:符号优先级的排列顺序
2021-12-16 22:58:51分为优先级15级: 1、圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】; 2、逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++】【 --】、负号... -
Java工程师成长之路——Java运算符的优先级(详解)
2020-01-07 23:30:42运算符的优先级运算符优先级介绍运算符优先级及结合性表运算符优先级的应用附录 运算符优先级介绍 所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符... -
常见运算符的运算优先级练习
2021-02-05 21:13:47常见的运算符(按优先级排序): 一元运算符,也叫单目运算符,常见:++(自加)、–(自减)、!(逻辑非)、~(按位取反) 四则运算符,加减乘除 位移运算符,<<(左移)、>>(右移) 关系运算符,... -
运算符的优先级(从高到低)
2018-10-25 10:11:24java运算符优先级记忆口诀 尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到《java编程思想》中的运算符优先级助记口诀,不过“Ulcer Addicts Really Like C A lot”在中文语境下不好记。... -
Java 运算符优先级
2014-02-28 16:28:56Java 运算符优先级 信息来自: http://www.ostools.net/commons 运算符 优先级 postfix expr++ expr-- unary ++expr --expr +expr -expr ~ ! multiplicative * / % additive + - shift >... -
Java中运算符的优先级
2021-08-03 18:10:52Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是13 “先乘后加”嘛! PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会... -
Java 异常处理、初始化块、final关键字、运算符优先级、循环语句
2021-08-31 19:28:14目录异常处理java的异常体系执行顺序异常块的优化初始化块final关键字运算符优先级 异常处理 java的异常体系 Error、Exception的区别:Error是程序本身无法处理的错误,Excepttion是程序本身可以处理的异常...