什么是表达式?

表达式是由多个操作数和运算符按照约定的规则构成的一个序列,其中运算符表示对操作数进行何种操作,而操作数可以是变量、常量或者是字面值(如:100、3.14)。例如:

int sum = a + b;
int sum = 10 + 20;
int avg = (a + b + c + d) / 4;

当表达式中包含多个运算符时,系统会按照运算符的优先级来控制运算符的执行顺序。例如:

x + y * z

由于 * 运算符的优先级高于 + 运算符,因此先执行 y * z 子表达式,然后再将 y * z 的结果和 x 相加。

Java 运算符优先级和结合方向如下表:

结合方向运算符优先级
从左向右
[]、()、.(方法调用)
从右向左
++、--、+(单目运算符)、-(单目运算符)、~、!、new(新建对象)、(强制类型转换)
从左向右*、/、%
从左向右+(加法)、-(减法)
从左向右<<、>>、>>>
从左向右<、<=、>、>=、instanceof
从左向右==、!=
从左向右&
从左向右^(异或)
从左向右|
从左向右&&
从左向右||
从右向左?:(三目运算符)
从右向左=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>=

上表中,运算符的优先级自上而下逐行降低,同一行的运算符优先级相同。即使能够根据优先级确定运算符的执行顺序,但是还是建议使用小括号(“()”)来显示规定表达式的运算顺序,以增强代码的可读性。例如:

// 应避免这种方式,可读性差
i > 0 && i % 10 == 0
// 建议这么做
(i > 0) && ((i % 10) == 0)

表达式运算后得到的结果称为表达式的值,而表达式运算结果的数据类型也称为表达式的类型。

示例

public class Demo {

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = a + b;
        System.out.println("c=" + c + ", a=" + a + ", b=" + b);

        boolean flag = false;
        if(flag) {
            System.out.println("是");
        } else {
            System.out.println("否");
        }
        System.out.println(flag ? "条件1" : "条件2");

        String str = "hello world";
        System.out.println(str.substring(6, 8));
    }

}

运行示例,输出结果如下:

c=30, a=10, b=20
否
条件2
wo


说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号