Java通过continue、break与标签实现Goto

在研究java多线程时突然发现了这么个字符retry,这是什么玩意,也不是关键字,经过研究才知道他是为实现goto。下面是java线程池用的一段代码,做一下解释:



开始标识retry:必须放到循环上面。当执行到退出标识时,则会退出循环1,因为开始标识为此循环做了标识。当执行到继续标识,则从新执行循环1.

下面我再做一个例子,做进一步的了解,代码如下:

private void demo(){
        outer:
        while(true){
            go:
            for(int i=0;i<10;i++){
                Log.v(TAG,"i值为:"+i);
                if(i==2){
                    inter:
                    for(int j=0;i<3;j++){
                        Log.v(TAG,"j值为:"+j);
                        if(j==1){
                            Log.v(TAG,"j==1跳出inter");
                            break inter;
                        }
                    }
                }
                if(i==3){
                    Log.v(TAG,"i==3,继续循环go");
                    continue go;
                }
                if(i==4){
                    Log.v(TAG,"i==4,跳出outer");
                    break outer;
                }
            }
        }
    }
以下为打印日志

08-18 13:33:51.601 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i值为:0
08-18 13:33:51.601 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i值为:1
08-18 13:33:51.601 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i值为:2
08-18 13:33:51.601 18946-18946/com.tool.wpn.threadpooldemo V/Executor: j值为:0
08-18 13:33:51.602 18946-18946/com.tool.wpn.threadpooldemo V/Executor: j值为:1
08-18 13:33:51.602 18946-18946/com.tool.wpn.threadpooldemo V/Executor: j==1跳出inter
08-18 13:33:51.602 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i值为:3
08-18 13:33:51.602 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i==3,继续循环go
08-18 13:33:51.602 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i值为:4
08-18 13:33:51.602 18946-18946/com.tool.wpn.threadpooldemo V/Executor: i==4,跳出outer


这下估计你对这种标识标签懂得了把。



阅读更多

没有更多推荐了,返回首页