变量的初始化是语句还是表达式?

时间:2014-06-09 18:40:32

标签: java initialization expression

class Demo {
     public static void main(String[] args) {
          int a; // declaration statement

          a = 5; // initialization statement/expression?
     }
}

我调查了它,它似乎既是一个陈述又是一个表达。这是真的?有没有关于此的文件?

4 个答案:

答案 0 :(得分:4)

局部变量声明 - 有或没有初始化 - 是一个语句,如section 14.4 of the JLS中所述。

重要的是要注意,这是 not 一个表达式,就像一个简单的赋值表达式一样 - 你不能将它用作一个更大的语句(块除外)的一部分。例如:

int x;
System.out.println(x = 5); // Prints 5

System.out.println(int x = 10); // Invalid

答案 1 :(得分:2)

赋值是Java中的表达式和语句。赋值的值是赋给其变量的值。这允许您执行多项任务,例如:

a = b = 5;

赋值b = 5被视为值为5的表达式,因此可以在同一语句中将值赋给a

答案 2 :(得分:1)

  

有没有关于此的文件?

它可能对您有所帮助Oracle Doc - Expressions, Statements, and Blocks

表达式

表达式是由变量,运算符和方法调用组成的构造,它们是根据语言的语法构造的,其值为单个值。

语句

陈述大致相当于自然语言中的句子。声明形成一个完整的执行单元。通过使用分号(;)终止表达式,可以将以下类型的表达式转换为语句。

  • 作业表达
  • 使用++或 -
  • 方法调用
  • 对象创建表达式

此类陈述称为表达式语句。

表达式语句外,还有另外两种语句:

  1. 声明声明
  2. 控制流程报表
  3. 声明语句声明一个变量。例如

    // declaration statement
    double aValue = 8933.234;
    

    块是平衡大括号之间的一组零个或多个语句,可以在允许单个语句的任何地方使用。

答案 3 :(得分:0)

分配语句。它将右侧表达式的结果保存到左侧的变量中。