if 语句不使用代码块引起的问题
代码如下:
个人理解。
if ()
后面不使用花括号时,里面不能出现声明,因为那个涉及到作用域,而没有花括号又没有作用域了。
这样也是不允许的。
改成
这样是可以的
- public class Test {
- public static void main(String[] args) {
- if (true)
- Test tt = new Test();// 这里出现异常,Test 不能解析,tt也是不能解析
- }
- }
public class Test { public static void main(String[] args) { if (true) Test tt = new Test();// 这里出现异常,Test 不能解析,tt也是不能解析 } }
个人理解。
if ()
后面不使用花括号时,里面不能出现声明,因为那个涉及到作用域,而没有花括号又没有作用域了。
- boolean ok = true;
- if(ok)
- MyClass c = new MyClass();
boolean ok = true; if(ok) MyClass c = new MyClass();
这样也是不允许的。
改成
- MyClass c = null;
- if(ok)
- c = new MyClass();
MyClass c = null; if(ok) c = new MyClass();
这样是可以的
- public class Test {
- public static void main(String[] args) {
- if (true) {
- Test tt = new Test();
- }
- }
- }
public class Test { public static void main(String[] args) { if (true) { Test tt = new Test(); } } }