Java语句:Java空语句、复合语句和表达式语句

按照语句的组成部分,可以将顺序结构中的语句分为表达式语句空语句复合语句 3 大类。下面首先介绍 Java 中语句的编写方式,然后对这 3 类语句进行详细介绍。

语句编写方式

在 Java 中,语句是最小的组成单位,每个语句必须使用分号作为结束符。除此之外,Java 对语句无任何其他限制,开发人员可以很随意地用符合自己风格的方式编写语句。

例如,可以将一个语句放在多行中,示例如下:
String str = "Apple "
+"Banner "+"Pear "
+" Orange";
由于 Java 使用分号作为语句的结束符,所以上面的 3 行代码会被 Java 认为是一条语句,因为这 3 行中只有一个分号。但是,我们不推荐使用这种方式来编写语句。

同样,因为使用分号作为分隔符,将多个语句放在一行来编写也是允许的。例如,下面的示例代码也是正确的。
int a=0,b,c;b=a+10;b++;c=a*b;System.out.println(c);
上面将 5 个语句放在一行中。

为了使程序语句排列得更加美观、容易阅读和排除错误,一般使用如下规则格式化源代码。
  • 在一行内只写一个语句,并采用空格、空行来保证语句容易阅读。
  • 在每个复合语句内使用 Tab 键向右缩进。
  • 大括号总是放在单独的一行,便于检查是否匹配。

空语句

所谓空语句(Empty Statement),它在程序中什么都不做,也不包含具有实际性的语句。在程序中,空语句主要用来作为空循环体。

空语句的语法格式如下:
; // 其实就是一个分号

执行一个空语句就是将控制转到该语句的结束点。这样,如果空语句是可到达的,则空语句的结束点也是可到达的。

表达式语句

在很多的高级语言中,有专门的赋值语句。而在 Java 中将赋值作为一个运算符,因此只有赋值表达式。在赋值表达式后面添加分号就成了独立的语句。

以下是一些表达式的示例语句:
3.1415926;
(a+b)/2;
x*y*z-y+(20-x);
这些表达式能够被 Java 编译器识别,但是由于没有对程序进行任何操作,因此无任何意义。

一般表达式语句应该能完成一个操作,如修改变量的值或者作为函数参数等。具体方法是,在表达式的左侧指定一个变量来存储表达式的值,或者将表达式传递给函数。

以下是修改后的表达式语句:
pi = 3.1415926;
output(pi); // 将pi的值传递到output()函数中作为参数
sum = (a+b)/2;
printf("%f",sum); // 将sum的值传递到printf()函数输出
temp = x*y*z-y+(20-x); // 将表达式的值保存到temp变量中

复合语句

复合语句又称为语句块,是很多个语句的组合,从而可以将多个语句看作单个语句。

复合语句的语法格式如下:
{
    statement-list // 语句列表
}
可以看到由一个扩在大括号内的可选 statement-list 组成。statement-list 是由一个或者多个语句组成的列表,如果不存在 statement-list,则称该语句块是空的。

它的执行规则如下:
  • 如果语句块是空的,控制转到语句块的结束点。
  • 如果语句块不是空的,控制转到语句列表。当控制到达语句列表的结束点时,控制转到语句的结束点。

例 1

创建一个语句块,该语句块包含 3 条语句。
{
    width = 10; // 为width变量赋值
    height = 90; // 为height变量赋值
    area = width * height; // 计算width变量和height变量的乘积
}
上述代码执行后,sum 变量的值为 900。上述的语句块中大括号内包含了 3 条语句。第一条语句为 width 变量赋值,第二条语句为 height 变量赋值,第三条语句则将 width 和 height 相乘,结果保存在 sum 变量中。