Java中运算符的优先级

Java中运算符的优先级

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

级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2  得到的结果是 13 “先乘后加”嘛!

PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:

分析:小括号优先级最高,因此

1、 执行 a + 18 ,结果为 30

2、 执行( a + 18 ) % 4 取模,结果为 2

3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24

任务

请在编辑器中的第 5 行输入如下代码,相信结合运行结果,大家会对运算符的优先级会有更加清晰的理解!

int  x = ( m * 8 / ( n + 2 ) ) % m ;

运行结果:

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);
	}
}

 

时间: 2024-07-31 03:30:32

Java中运算符的优先级的相关文章

浅谈JavaScript中运算符的优先级_javascript技巧

运算符优先级 JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低的优先级列出JavaScript运算符.具有相同优先级的运算符按从左至右的顺序求值. 运算符 描述 . [] () 字段访问.数组下标.函数调用以及表达式分组 ++ -- - ~ ! delete new typeof void 一元运算符.返回数据类型.对象创建.未定义值 * / % 乘法.除法.

java中运算符与表达式用法介绍

1. 对两个整型变量进行除法.取模和自加运算 (1) 在项目MyProject2中创建DivModDemo类. (2) 在代码编辑器中输入以下代码:  代码如下 复制代码 public class DivModDemo {     /**      * @param args      */     public static void main(String[] args) {         // TODO Auto-generated method stub         int a=8

《Java 7程序设计入门经典》一2.14 运算符的优先级

2.14 运算符的优先级 表2-3从高到低显示了Java所有运算符的优先级次序.在同一行的运算符有相同的优先级.表2-3还包括了在本书后面会介绍的一些运算符.运算符决定其在表达式中什么时候执行.有高优先级的运算符会在低优先级运算符运行前执行.例如,表达式 10-4*2 的结果是2,不是12.这是因为乘法比减法的优先级高.除了赋值运算符外,相同优先级的运算符从左向右运算.一系列的赋值运算符从右向左运算.对于分隔符(separator)方括号([]).圆括号(())和点(.),它们作为运算符有最高的

c-关于java赋值表达式的优先级的问题

问题描述 关于java赋值表达式的优先级的问题 刚学java,现遇到这个问题,若有定义int a=2,则执行完语句a+=a-=a*a;后a的值是多少.按以往c语言的语法应该为-4 而现在为什么java运行后值是0呢? 解决方案 java和c的运算规则不一样,例如下面这段代码在Java总运行时 1. long a = 2,b = 9; 2. a += b -= a*a;//a = 7,b=5,与C一致 3. a = 2; 4. a += a-= a*a;// 在Java中赋值顺序为从左到右,a*a

C++中运算符 &和&&、|和|| 的详解及区别_C 语言

C++中运算符 &和&&.|和|| 的详解及区别 简介: &&是逻辑与运算符,||是逻辑或运算符,都是逻辑运算符,两边只能是bool类型 &与| 既可以进行逻辑运算,又可以进行位运算,两边既可以是bool类型,又可以是数值类型 区别: if (A && B) 如果 A 为 false ,整个表达式就为 false,不再计算 B 的值了. if (A & B) 如果 A 为 false ,整个表达式就为 false,但还要计算 B 的值

java中=是赋值的意思,==是等于的意思,这两个运算符的区别和联系什么呢

问题描述 java中=是赋值的意思,==是等于的意思,这两个运算符的区别和联系什么呢 java中=是赋值的意思,==是等于的意思,这两个运算符的区别和联系什么呢,是不是可以这样子理解,x=x+1是正确的写法,x==x+1是不成立的,因为x=!x+1,求分析解答指出理解不到位的地方,谢谢 解决方案 x=x+1,就是先加再赋值 x==x+1,是先加然后做比较 x==x+1可以做逻辑判断的条件. 楼主没有什么理解不到位的啊. 解决方案二: 建议你看看运算符的优先级,这里设x=5: x=x+1相当于x=

java运算符的优先级和%取模

问题描述 java运算符的优先级和%取模 int a=2 ; int b=a+3*a++ ; b的输出值为什么是8 不是9吗怎么变成8啦 解决方案 ++优先级虽然高,但是第一个a编译器先对它取值了.也许你觉得第一个a应该是a自增1以后的值.但是编译器不这么认为.这种代码在C++中是未定义行为的代码,换言之语法规范没有规定结果是多少,不同的编译器可以产生不同的结果.我不清楚Java中有没有规定,但是可以肯定的是,这种模棱两可的代码绝对不要在你写程序的时候写出来. 解决方案二: 这段代码的正确写法取

java运算符的优先级

运算符的优先级决定了存在多个运算符时一个表达式各部分的计算顺序. Java对计算顺序作出了特别的规定. 其中,最简单的规则就是乘法和除法在加法和减法之前完成.程序员经常都会忘记其他优先级规则,所以应该用括号明确规定计算顺序. 例如: A = X + Y - 2/2 + Z; 为上述表达式加上括号后,就有了一个不同的含义. A = X + (Y - 2)/(2 + Z);

Python中运算符使用时的优先级

  这篇文章主要介绍了讲解Python中运算符使用时的优先级,是Python学习当中的基础知识,需要的朋友可以参考下 运算符优先级来确定条件的表达式中的分组.这会影响一个表达式如何计算.某些运算符的优先级高于其他;例如,乘法运算符的优先级比加法运算更高. 例如x=7 + 3* 2;这里,x被赋值13,而不是20,因为运算符*的优先级比+更高,所以它首先乘以3 * 2,然后加7. 这里,具有最高优先级运算符出现在表格上方,那些最低的显示在底部.在一个表达式,更高的优先级运算符将首先计算. 例如: