3.3 表达式、语句和块
掌握变量和运算符后,可以学习表达式、语句和块(代码块)等要素。运算符用于构建表达式,进行运算;表达式是语句的核心组件;语句归在一起可以形成块。
3.3.1 表达式
表达式是由变量、运算符和方法调用(根据语法构建)等组成的构造,且表达式的计算结果为单个值。下面例子中黑体部分为表达式:
表达式的返回值类型取决于表达式中的元素。表达式 cadence = 0返回值的类型为int。因为赋值运算符返回值的数据类型与左边的运算对象的数据类型一样,在这个例子中,cadence的数据类型为int。如其他表达式所示,表达式也能返回其他类型的值,如boolean、String。
Java程序语言支持用表达式构建复合表达式,前提是表达式一部分所要求的数据类型与另一部分的数据类型相匹配。复合表达式例子如下:
这个例子中,表达式的计算顺序不重要,因为乘法运算的结果与计算顺序无关。也就是说,不管乘法的顺序如何,输出结果都一样。但这对所有的表达式并不成立。举个例子,下述表达式会根据执行加法和除法运算的不同顺序,给出不同结果:
为避免这种二义性,可以使用圆括号指定表达式的计算顺序。例如,为了保证上述表达式不存在二义性,可以改写成:
如果不显式指定操作的执行次序,那么执行次序就由表达式内的运算符的优先级确定。优先级较高的运算符先计算。例如,除法的优先级比乘法要高,因此下述两表达式是等价的:
构建复合表达式时,用圆括号显式指出先要计算的运算符,这有助于阅读和维护代码。