Java中的表达式和语句有什么区别?

lxg*_*eek 23 java

我是Java的初学者,我想知道Java中表达式和语句之间的区别?

mus*_*ibs 18

来自Javadoc,

表达

一个表达式是变量,运算符和方法调用,它们根据语言的语法,计算结果为单个值构成由一个构建体.

例如,

int cadence = 0;

表达式返回的值的数据类型取决于表达式中使用的元素.表达式cadence = 0返回一个int,因为赋值运算符返回与其左侧操作数相同的数据类型的值; 在这种情况下,cadence是一个int.

声明

陈述大致相当于自然语言中的句子.声明形成一个完整的执行单元.

  • 是的,这是直接来自[docs](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html),但不完全清楚差异.他们使用示例`int cadence = 0;`是一个表达式.然后他们使用这个作为语句的例子是`aValue = 8933.234;`.为什么一个是陈述而另一个是表达?他们都是表达吗?他们俩都是陈述吗?如果没有,是什么使一个语句和/或表达式(据我所知,它们都是表达式和​​语句). (5认同)
  • @Ray 文档没有声称 `int cadence = 0;` 是一个表达式。他们声称“cadence = 0”是一个表达式。因为如果没有分号,`cadence = 0` 就不是一个完整的执行单元。同样,“aValue = 8933.234”是“aValue = 8933.234;”语句中的一个表达式。 (3认同)

fas*_*ava 13

这是一个例子:

b + 1是一个表达,a = b + 1;而是一个陈述.语句由表达式组成.

这不是Java语言特有的.许多语言都使用这种语法,例如C, C++, Basic等等(不是SQL).

  • `a ++`是一个表达式.`a ++;`是一个表达式语句.参见[JLS](https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.8) (10认同)
  • 而`a ++`是一个表达陈述...... (2认同)