原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/16/2820664.html
英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html
学习了变量和操作符,该开始学表达式,语句,块。操作符用来计算值,是表达式的一部分;表达式是语句的主要部分,块是由语句组成。
表达式
表达式右变量,操作符,方法调用组成,根据语言的语法构造,计算后返回一个单独的值。表达式例子如下加粗的部分:
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,因为赋值运算符返回其左操作数相同的数据类型的值;该这个情况下,cadence
是int。正如你看到的其他表达式,表达式可以返回其他类型的值,例如布尔值或字符串。
java编程语言,允许从多个简单的表达式构造一个复合的表达式,只要表达式的一部分要求的数据类型,复合其他数据类型。这里是一个复合类型的表达式例子:
1 * 2 * 3
这个特定的例子,表达式的计算顺序不重要,因为乘法的结果,和顺序独立;无论使用什么顺序应用乘法运算,结果都是一样的。但是,这不使用所有的表达式,下面的表达式的结果,依靠于除法和乘法的操作哪个才是第一。
x + y / 100 // ambiguous
使用小括号:(和),精确控制哪个表达式先被执行。例如,让先前的表达式没有歧义,可以这么写:
(x + y) / 100 // unambiguous, recommended
如果你不显式指示哪个操作先执行,执行顺序,由表达式的操作的优先级决定。高优先的操作先被执行。例如,除法操作,比加法操作有更高的优先级,所以,下面的两个表达式是一样的:
x + y / 100 x + (y / 100) // unambiguous, recommended
写复合表达式,使用小括号,显式指明哪个操作先被执行。这个实践让代码更易读,应该保持。
语句
语句是大致相当于自然语言中的句子。语句构成一个完整的执行单位。以下类型的表达式可以构造成语句,在表达式用分号(;)结尾就可以了。
- 赋值表达式
任何使用++或者--
- 方法调用
- 对象创建表达式
这种称为表达式语句。下面是一些示例的表达式语句。
// assignment statement aValue = 8933.234; // increment statement aValue++; // method invocation statement System.out.println("Hello World!"); // object creation statement Bicycle myBike = new Bicycle();
除了表达式语句,还有两种类型的语句:声明语句和控制流语句。一个声明语句声明一个变量,你已经见过很多声明表达式的例子:
// declaration statement double aValue = 8933.234;
最后,控制流语句调节语句执行顺序。后来会学习控制流语句。
块
一个代码块,有一组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 } }