这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
表达式、语句和代码块
到现在你已经知道了变量和操作符。是时候学习表达式、语句和代码块了。构建表达式时会用到操作符,表达式构建出了语句,语句经过分组成了代码块。
表达式
表达式由变量、操作符和方法调用构成并返回一个值结果,构造过程需要遵守Java语言语法规则。你可以看下如下这些表达式示例:
int cadence = 0;
anArray[0] = 100;
System.out.println("Element 1 an index 0 : " + anArray[0]);
int result = 1 + 2;
if(value1 == value2){
System.out.println("value1 == value2");
}
表达式的返回值依赖于表达式中的元素。表达式cadence=0返回一个int,因为赋值操作符返回的值的类型与左边的操作数的类型一致,在本例中,cadence是int类型。如同你看到的其他表达式,表达式也可以返回其他的类型,比如boolean或者是String。
Java编程语言允许利用小表达式构造复合表达式,只要表达式一方需要的数据类型与另一方的数据类型一致即可。如下是复合表达式的示例:
1 * 2 * 3
在上面这个特殊的例子中,表达式求值的顺序并不重要,因为乘法的结果与顺序无关。但这并不是说所有的表达式求值结果都与运算顺序无关。比如说下面的表达式,其求值结果取决于是先运算加法还是先运算除法:
x + y / 10;
可以使用平衡括号()精确的指定表达式的运算顺序。比如为了使上面的表达式更精准,可以这样来写:
(x + y) / 10;
如果你没有显示的指明表达式的执行顺序,那么表达式的执行顺序取决于操作符的优先级。高优先级的操作符会首先计算。除法运算符的优先级比加法运算符的优先级要高,所以下面两个表达式是等价的:
x + y / 100
x + (y / 100)
在编写复合表达式时,应该使用括号明确指明表达式的运算顺序。这种最佳实践是代码更易于阅读和维护。
语句
语句大致相当于自然语言中的句子。语句构成一个完整的执行单元。下面的这些表达式只要是以分号;结尾都可以认为是一个语句
- 赋值
- 任意场景下的++和–
- 方法调用
- 对象创建表达式
这些语句我们称为表达式语句,如下是表达式语句的示例:
// 赋值
aValue = 8933.234;
// 自增表达式
aValue++;
// 方法调用
System.out.println("Hello World!");
// 对象创建语句
Bicycle myBike = new Bicycle();
除了表达式语句外,还有两种其他类型的语句:声明语句和控制流语句。声明语句声明一个变量,你已经在许多示例中看到这种语句了:
// 声明变量
double aValue = 8933.234;
最后,控制流语句调节语句的执行顺序。你将在接下来的控制流语句章节进一步学习控制流的详细内容。
代码块
代码块是指花括号{}括起来的0个或多个语句,花括号可以用在有语句存在的地方。如下的示例展示了代码块的使用:
class BlockDemo{
public static void main(String[] args){
boolean condition = true;
if(condition){
System.out.println("Condition is true.");
}else{
System.out.println("Condition is false");
}
}
}