一个语句作为一个整体算作一个表达式吗?
Would a statement as a whole count as an expression?
我知道一个表达式组成一个语句,但是带有分号的整个语句算作一个表达式吗?如果我删除分号,那么该语句将不是语句而是表达式,对吗?
并非所有表达式都是有效的语句,但是 some expressions can be used as statements.
例如,前置或 post 递增表达式如 x++
可用作语句(即 x++
)。
但括号内的表达式(例如(x)
)不允许作为语句。
并非所有语句都是附加分号的表达式,一个简单的反例是空语句 ;
(还有 if 语句和许多其他语句)。
relevant section of the JLS 实际上可读性很好。
Java 语言规范 section 14.5 描述了“语句”。
这些“陈述”中有一部分是 "expression statements"。
Expressions (chapter 15) 本身要么单独出现在表达式语句中,要么是其他语句的组成部分。
回答你问题中的例子:在x = 5;
中有一个表达式x = 5
(特别是assignment expression),但是x = 5;
本身是一个语句(特别是表达式语句)。
我知道一个表达式组成一个语句,但是带有分号的整个语句算作一个表达式吗?如果我删除分号,那么该语句将不是语句而是表达式,对吗?
并非所有表达式都是有效的语句,但是 some expressions can be used as statements.
例如,前置或 post 递增表达式如 x++
可用作语句(即 x++
)。
但括号内的表达式(例如(x)
)不允许作为语句。
并非所有语句都是附加分号的表达式,一个简单的反例是空语句 ;
(还有 if 语句和许多其他语句)。
relevant section of the JLS 实际上可读性很好。
Java 语言规范 section 14.5 描述了“语句”。
这些“陈述”中有一部分是 "expression statements"。
Expressions (chapter 15) 本身要么单独出现在表达式语句中,要么是其他语句的组成部分。
回答你问题中的例子:在x = 5;
中有一个表达式x = 5
(特别是assignment expression),但是x = 5;
本身是一个语句(特别是表达式语句)。