我们已经理解了变量和运算符,是时间学习下表达式,语句和代码块了。我们用运算符来构建表达式,计算出一个值;而表达式是语句的核心组件;而语句又组成了代码块;
Expression - 表达式
表达式是由变量,运算符和方法调用按照编程语言的语法组成的,用来计算出一个值。你已经看到过了一些表达式,如下:
int cadence = 0;
anArray[0] = 100;
System.out.println("Element 1 at index 0: " + anArray[0]);
int result = 1 + 2; // result is now 3
if (value1 == value2)
System.out.println("value1 == value2");
复制代码
表达式返回值的类型依赖于表达式使用的元素。表达式 cadence = 0 返回一个 int 值,因为复制预算返回值的类型和它左操作数的类型一致;这个示例中,codence 是一个 int 值。正如你在其他示例中看到的一样,表达式返回其他类型的值,如 boolean 和 String。
Java 中允许你使用多个较小表达式构建出符合表达式,只要数据类型符合表达式要求的即可。下面是一个符合表达式的例子:
1 * 2 * 3
复制代码
这个例子中,表达式的执行顺序不太重要,因为乘法运算的结果不依赖于计算顺序;无论你用什么顺序计算乘法,记过都是一样的。但并不是所有表达式都是这样的。例如在下面的例子中,取决于先计算加法还是除法,他们的计算结果是不同的:
x + y / 100
复制代码
你可以使用括号来明确指出哪个表达式优先计算:( 和 )。例如,为了让上一个示例中的表达式没有歧义,你可以这么写:
(x + y) /100
复制代码
如果你没有明确的指出计算的顺序,计算顺序就根据表达式中预算福的优先级来判断。高优先级的运算会优先执行。例如,除法运算的优先级比加法高。所以,下面的两个表达式是等价的:
x + y / 100
x + (y / 100) // 没有歧义,推荐
复制代码
在复合表达式用,请使用括号来明确的指定哪个运算先执行。这会让你的代码更容易阅读和维护。
Statement - 语句
语句相当于我们自然语言中句子。一个语句构成一个完整的执行单元。下面类型的表达式用冒号(;)结尾时就构成了一个语句。
赋值
++ 或 --
方法调用
对象创建
这些语句成为表达式语句。这里有一些表达式语句的例子:
// 赋值语句
aValue = 8933.234;
// 自增语句
aValue++;
// 方法调用语句
System.out.println("Hello World!");
// 对象创建语句
Bicycle myBike = new Bicycle();
复制代码
除了表达式语句外,还有其他两种语句:声明语句和流程控制语句。声明语句用来声明一个变量。你已经看到过很多声明语句的例子了:
// 声明语句
double aValue = 8933.234;
复制代码
最后,流程控制语句用来控制语句的执行顺序。我们会在下一节中学习流程控制语句。
Block - 代码块
代码块是由 0 个或者多个在花括号中的语句组成的,可以用于所有允许使用单个语句的地方。在下面的 BlockDemo 示例中,展示了代码块的用法:
class BlockDemo{
public static void main(String[] args){
boolean condition = true;
if (condition) { // begin block 1
System.out.println("Condition is true.");
} // end block one
else { // begin block 2
System.out.println("Condition is false.");
} // end block 2
}
}
复制代码