Java运算符优先级

本文详细介绍了Java运算符的优先级规则,包括数值运算、字符串运算、关系运算和逻辑运算的顺序。优先级从高到低依次为:括号、一元运算符、乘除、加减、位移、关系运算、逻辑与、逻辑或。运算符的结合性也会影响表达式的计算,如大部分运算符从左到右结合,而赋值运算符、条件运算符和一元运算符从右到左结合。举例说明了运算符的优先级如何影响表达式的结果,并通过一个程序展示了后置递增运算符在复合赋值中的应用。
摘要由CSDN通过智能技术生成

Java运算符优先级

​ 每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。

一、优先级
  1. 优先级与求值顺序无关。如a+b && b*c,虽然“乘”优先级最高,但这个表达式求值顺序是从左到右。

  2. 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

  3. 相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符条件运算符赋值运算符

  4. 基本的优先级需要记住:

    • 先算术运算,后移位运算,最后位运算。请特别注意: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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值