美文网首页
Java运算符优先级和结合性

Java运算符优先级和结合性

作者: 测试老杨 | 来源:发表于2018-09-06 09:28 被阅读15次

    问题
    如下代码运行结果是啥?

    package day06;
    
    public class YzcOperatorTest {
        public static void main(String[] args) {
            int a=1,b=2;
            boolean flag = a<b||b<a&&a+b<0;
            System.out.println(flag);//true
        }
    }
    

    运算符优先级

    该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级16的优先级最低。


    image.png

    运算符的结合性

    相同优先级的运算符在同一个表达式中,且没有括号的时候,运算符和操作数的结合方式,通常有从左到右结合和从右到左结合两种方式。
    比如:
    表达式a+b+c
    +是从左向右结合(左结合)的,那么该表达式被解析为 (a+b)+c

    表达式a=b=c
    =是从右向左结合(右结合)的,那么该表达式被解析为a=(b=c)

    表达式a > b ? b > c ? 1 : 0 : 2
    ?:是从右向左结合(右结合)的,那么该表达式被被解析为 a > b ? (b > c ? 1 : 0) : 2

    参考资料

    http://www.cnblogs.com/zjfjava/p/5996666.html

    http://www.cnblogs.com/softwaretesting/archive/2011/08/16/2139068.html

    相关文章

      网友评论

          本文标题:Java运算符优先级和结合性

          本文链接:https://www.haomeiwen.com/subject/jxutgftx.html