zoukankan      html  css  js  c++  java
  • java运算符的优先级

    下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)

    优先级

    描述

    运算符

    1

    括号

    ()、[]

    2

    正负号

    +、-

    3

    自增自减,非

    ++、--、!

    4

    乘除,取余

    *、/、%

    5

    加减

    +、-

    6

    移位运算

    <<、>>、>>>

    7

    大小关系

    >、>=、<、<=

    8

    相等关系

    ==、!=

    9

    按位与

    &

    10

    按位异或

    ^

    11

    按位或

    |

    12

    逻辑与

    &&

    13

    逻辑或

    ||

    14

    条件运算

    ?:

    15

    赋值运算

    =、+=、-=、*=、/=、%=

    16

    位赋值运算

    &=、|=、<<=、>>=、>>>=

    优先级顺序看完了,我们来通过代码,加强一下:

    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。

  • 相关阅读:
    【NOIP 2003】 加分二叉树
    【POJ 1655】 Balancing Act
    【HDU 3613】Best Reward
    【POJ 3461】 Oulipo
    【POJ 2752】 Seek the Name, Seek the Fame
    【POJ 1961】 Period
    【POJ 2406】 Power Strings
    BZOJ3028 食物(生成函数)
    BZOJ5372 PKUSC2018神仙的游戏(NTT)
    BZOJ4836 二元运算(分治FFT)
  • 原文地址:https://www.cnblogs.com/gaowc/p/10248999.html
Copyright © 2011-2022 走看看