简单语句是执行动作的语法单元。例如,返回表达式并将其赋给新的或已声明的变量。
文字被认为是一个表达式,但是如果一个表达式包含多个操作数并将它们求值为一个结果,那么我们可以说一个表达式执行计算操作,并返回其结果值。
从这个意义上说,如果表达式也执行动作,那么它就不是一种语句吗?
答案 0 :(得分:1)
JLS 14.8声明语句和表达式之间的关系:
某些类型的表达式可以在其后加上分号来用作语句。...表达式语句是通过对表达式求值来执行的;如果表达式具有值,则将值丢弃。
声明可以是以下之一:
声明:
StatementWithoutTrailingSubstatement
LabeledStatement
IfThenStatement
IfThenElseStatement
WhileStatement
ForStatement
StatementWithoutTrailingSubstatement 可以是以下之一:
StatementWithoutTrailingSubstatement:
阻止
EmptyStatement
ExpressionStatement
AssertStatement
SwitchStatement
DoStatement
BreakStatement
ContinueStatement
ReturnStatement
SynchronizedStatement
ThrowStatement
TryStatement
ExpressionStatement 是:
ExpressionStatement:
- StatementExpression;
StatementExpression 为以下之一:
StatementExpression:
分配
PreIncrementExpression
PreDecrementExpression
PostIncrementExpression
PostDecrementExpression
MethodInvocation
ClassInstanceCreationExpression
回答您的问题:
某些(但不是全部)表达式可以用作语句。
以下是一些可以用作语句的表达式示例:
x = 5;
new StringBuilder ();
someMethodCall ();
这是一个不能用作语句的表达式的示例(因为必须使用其值来做某事):
(x > y) ? x : y;
因此,并非所有表达式都可以视为语句。
另一方面,大多数语句不是表达式。