声明对比 块

pro*_*toS 2 java if-statement block

我是一个新的java用户.最近我了解到在java中,每个语句都以分号(;)结束,每个块都由一对ob花括号分隔 - {}(如果我错了,请纠正我).

但在许多地方我发现作家都在说这if句话.所以我的问题是java statementblockjava 之间的区别是什么?

提前致谢.

Rea*_*tic 5

Java语言规范定义了正式模块和报表.为了简化它的说法:

  • Java中的每个语句都以分号结尾,这是正确的.这是一种考虑它们的便捷方式,但它并不正式.
  • 有些陈述在其定义中包含分号.这些通常都是简单的陈述.例如:
    • 空语句只是一个分号:;.
    • 表达式语句是允许的表达式集之一,后跟分号.new ClassName();,System.out.println();,i++;等.
  • 块是一种语句,包含由大括号括起的声明和其他语句{ int i = 1; System.out.println(i); }.
  • 一些语句是使用其他语句构建的.他们的定义不包括分号.如果子语句以分号结尾,则这些语句以分号结尾.该if声明属于这一类.它是作为.因此,如果其中的部分有分号,则以分号结尾.如果里面恰好是一个块(这是一种语句!),那么它以一个大括号结束:if ( expression ) statement statementstatement

    if ( a == b )
       System.out.println(a);
    
    Run Code Online (Sandbox Code Playgroud)

    if ( a == b ) {
       System.out.println(a);
    }
    
    Run Code Online (Sandbox Code Playgroud)

    在第一种格式中,子if语句是表达式语句(方法调用是表达式语句,表达式语句以分号结尾).

    在第二种格式中,子if语句是一个块语句,它包含一个表达式语句.所以if块的支撑结束,而不是分号.

底线:声明由属于某些正式类别定义.其中一些以分号结尾,一些则不以.