Java 中的空语句

17 Mar 2025 | 5 分钟阅读

Java 中有三种语句类型:声明、表达式和控制语句。除此之外,还有一种称为**空语句**的语句。在本节中,我们将通过示例讨论**Java 中的空语句**。

空语句

顾名思义,空语句除了分号(;)之外,没有任何内容。

它可以在多种情况下使用。让我们讨论其中的一些。

for 循环中的空语句

因此,我们必须避免使变量 k 的范围成为局部变量。以下代码片段就是这样做的。

在这里,for 循环的初始化块为空,因此是一个空语句。

为了创建一个无限循环,我们可以使用空语句。

但是,如果我们使用 break 语句在循环体内部,那么循环就可以终止。

如果我们想创建一个带有空体的 for 循环或 while 循环,我们可以使用空语句。让我们从 for 循环开始。

for 循环后面的分号表明 for 循环的体是空的。

上面的 for 循环也可以写成

我们可以在 for 循环的体中拥有多个空语句。

在这里,我们在 for 循环的体中创建了 10 个空语句。

while 循环中的空语句

与 for 循环类似,我们也可以使用 while 循环创建空语句。

我们创建了一个 while 循环,其体包含一个空语句,这等同于

多个空语句也可以插入到循环体中。

请注意,多个空语句没有区别。

if … else 语句中的空语句

在上面的代码片段中,if 条件的体(或语句)是空的,因为我们在 if 语句后面立即放置了一个分号。与循环类似,我们可以将上面的代码片段重写为

类似地,我们也可以在 else 语句后面立即放置分号。观察以下代码。

这里,我们也为 else 部分移除了花括号。

一些常见错误

使用空语句时会发生一些常见错误。下面提到了其中的一些。

1) 如果我们在 if 语句后面放置一对分号,然后编写 else 语句,它将导致编译错误。

文件名: EmptyStmnt.java

输出

/EmptyStmnt.java:7: error: 'else' without 'if'
else;

解释:这是因为我们在 if 条件后放置了一对分号。第一个分号表示 if 条件的空体,第二个分号超出了 if 条件的体。

因此,我们在 if 部分和 else 部分之间有一个空语句。众所周知,不能在 if 和 else 部分之间放置任何语句(即使它是空的)。因此,如果一个人想在 if 部分放置两个空语句,代码将抛出编译错误,必须使用花括号。

文件名: EmptySttmnt1.java

输出

Hello World

解释:这里,两个空语句是 if 块的一部分,紧跟在 if 块之后,else 语句就开始了。因此,编译器没有抱怨。

2) 另一个人常犯的错误是,在 if … else 块或循环中放置分号后开始花括号。

文件名: EmptyStmnt2.java

输出

Hello

解释: if 部分后的花括号不是 if 部分的一部分。这是因为 if 部分后面有一个分号。因此,即使条件 (k > 0) 为 false,花括号中的打印语句也会执行,并打印 *Hello*。

让我们在 for 循环中看看相同的情况。

文件名: EmptyStmnt3.java

输出

Hello

解释: for 循环后的花括号不是 for 循环的一部分。因此,只打印一次单词 *Hello*。

注意事项

由于上述场景,需要小心地在 if … else 或循环周围使用分号(空语句)。因为分号的使用通常不会引发任何错误或警告。

但是,它也不会产生预期的输出。由于没有引发任何异常或错误,因此发现这种错误是一项艰巨的任务,尤其是在处理包含成百上千行代码时。