日期:2014-05-20  浏览次数:20648 次

语句块问题。
离破碎虚空的不远了。
Java code
    public static void main(String[] args) {
        System.out.println("outer Before");
        {
            boolean i;
            if (i = false) {
            {
                //code
                System.out.println("inner IF");
            }
        }
        
        else{
            System.out.println("outer ELSE " + i);
        }
        System.out.println("outer After");
        }

    }

这样能执行吗?给点解释吧,受不了了。
这样呢?
Java code
public static void main(String[] args) {
        System.out.println("outer Before");
        {
            {
                boolean i;
                if (i = false) {
                {
                    //code
                    System.out.println("inner IF");
                }
            }
            
        }
        
        else{
            System.out.println("outer ELSE " + i);
        }
        System.out.println("outer After");
        }

    }

呵呵。。。


------解决方案--------------------
第一个能。。。。
第二个不能
else {} 算一个块 但是必须紧跟if{} 块后面
单个块{} 里面能再加{}....必须成对出现
------解决方案--------------------
Java code

public class Test {  //{1}..start
    public static void main(String[] args) {  //{2}..start
        System.out.println("outer Before");
        {  //{3}..start
            boolean i;
            if (i = false) {  //{4}..start
                {  //{6}..start
                    System.out.println("inner IF");
                }  //{6}..end
            }  //{4}..end

            else {  //{5}..start
                System.out.println("outer ELSE " + i);
            }  //{5}..end
            System.out.println("outer After");
        }  //{3}..end
    }  //{2}..end
}//{1}..end

//以上全是标准嵌套,切else块{5} 紧跟在块{4}之后