Java语法 - 如果不使用代码块

时间:2012-03-31 10:32:39

标签: java

if(true)    
  System.out.println("one");   
System.out.println("two);
System.out.println("three);

首先它似乎很奇怪,但它确实有效。我的问题只是为了澄清:如果我不使用代码块之后会受到影响;如果我在代码块内部使用代码块会受到影响 - 我是对的吗?还是有什么我不知道通过这个例子发生的事情?

4 个答案:

答案 0 :(得分:9)

您的情况相当于:

if(true){
    System.out.println("one");
}
System.out.println("two");
System.out.println("three");

并输出

one
two
three

if语句执行运算符(在您的情况下,它只是System.out.println("one"),紧跟在它后面。图括号({})也是运算符。例如:

if(false)
System.out.println("one");
System.out.println("two");
System.out.println("three");

/*output will be:
two
three
*/

//and in this case there will be no output
if(false){
    System.out.println("one");
    System.out.println("two");
    System.out.println("three");
}

答案 1 :(得分:1)

在Java中如果可以用两种方式编写

if(true){
//statement 1
//statement 2
//statement 3
}

如果要执行多行,则必须使用块。如果你想使用单行,你可以使用out block。

if(true)
//statement 1

但是一行语句也可以用块写,它也可以用。

if(true){
//statment 1
}

与out block

相同

答案 2 :(得分:0)

在Java(以及类似语言)中,单个语句相当于包含该单个语句的块。

答案 3 :(得分:0)

Java Language Specification for the if statement定义:

IfThenStatement:
    if ( Expression ) Statement

声明进一步defined as

Statement:
    StatementWithoutTrailingSubstatement
    <removed for brevity>

StatementWithoutTrailingSubstatement:
    Block
    <removed for brevity>

换句话说:if语句包含Statement,它可以是Block(括号中的语句列表)。