java的复合语句是以整个块为单位的语句,所以又称为块语句,复合语句由“{”开始,以“}”结束。复合语句中的每个语句都是从上到下执行的,并且在复合语句中可以嵌套复合语句。
public class Compound {
public static void main(String[] args) {
int a = 21;
{ //复合语句1 start
int b = 3;
System.out.println("b= "+b); //3
{ //复合语句2 start
int c = 5;
System.out.println("c>b: " + (c>b)); //true
System.out.println("a= "+a); //21
System.out.println("b= "+b); //3
} //复合语句2 end
System.out.println("c= "+c); //编译错误
System.out.println("b= "+b); //3
} //复合语句1 end
System.out.println("b= "+b);//编译错误
System.out.println("a= "+a); //21
}
}
上述代码中写了两个复合语句,可以看到,c在复合语句块2中,当在复合语句1中使用时,会出现编译错误,因为c为局部变量,它的作用域就是在复合语句2中,同样b也是一样,在该变量的作用域之外使用的话,会出现编译错误。