意思就是判断下面哪一句代码是错误的:
public static void main(String[] args) {
① int num = 100;
② if(num > 10)
③ int x = 200;
④ System.out.println("进入if结构");
}
从1到4中选一个,我没看出来是哪一句错了
if 的大括号是一个作用域,判断之后会执行里面的语句,没有大括号就是相当于普通代码,会顺序执行, 这也就是常说的不加大括号会对就近一条语句生效.
但是当程序进行到if后的 int x 语句时, 这个变量没有一个正确的作用域
假如案例中num为9 小于10, 理论来说 int x 这句不会实现, 于是不加括号的问题就来了, 根据程序需要这句话应该不执行, 但是正因为没有作用域, 当顺序执行的时候, 声明变量x就会成为一个非法表达式.