java中运算符的优先级

java中运算符的优先级

优先级记忆方法:单目乘除为关系,逻辑三目后赋值。(前辈总结的)

单目运算符:一次作用一个变量的运算符,又叫一元运算符
单目:单目运算符+ –(正负数) ,++ –,!(逻辑非),~(按位取反)
乘除:算数运算符:* / % + - (* / %优先级肯定是大于±的)
为:位运算符:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)
关系:关系运算符:> < >= <= == !=
逻辑:逻辑运算符(除!)&& || & | ^
三目:条件运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:= += -= *= /= %= |= &= ^=
说明:前优先级大于后,比如单目运算符也是位运算符,的优先级是单目级别的。至于赋值运算符中没有见过的自行测试

所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:

java中运算符的优先级_第1张图片

级别为 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 的结果是?

第一步:计算38,结果为24;第二步:计算11+38,结果为35;第三步:计算(11 + 3 * 8) / 4,结果为8;第四步:计算(11 + 3 * 8) / 4 % 3,结果为2

你可能感兴趣的:(java)