Java运算符优先级

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。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

Whtai-

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值