zoukankan      html  css  js  c++  java
  • 【java基础】Java的retry标记的使用

    说明:其实retry就是一个标记,标记程序跳出循环的时候从哪里开始执行,功能类似于goto。retry一般都是跟随者for循环出现,第一个retry的下面一行就是for循环,而且第二个retry的前面一般是 continue或是 break。

    retry本身也可以是其它属性名,如 retry1,retry2等等,遵循java的命名规则可以随意命名。

    测试案例:

    package com.sxf.test.thread;
    /**
     * Retry 的使用
     * @author sxf
     *
     */
    public class RetryTest {
    
        public static void main(String[] args) {
            //testRetry1();
            //testRetry2();
            testRetry3(4);
        }
        
        /**
         * 当i=5的时候,回到a行,程序继续执行,此时i=5,然后继续i++向下执行循环。
         * 最终输出的i的打印结果:0,1,2,3,4,6,7,8,9
         */
        public static void  testRetry1(){
            retry://(a)
            for(int i=0;i<10;i++){
                while(i==5){
                    continue retry;
                }
                System.out.println("RetryTest.testRetry()i="+i);
            }
        }
        
        /**
         * 当i=5的时候,回到b行,程序继续执行,此时i=5,还是会进入while循环,因此是一个死循环。
         * 最终输出的i的打印结果:0,1,2,3,4
         */
        public static void  testRetry2(){
            for(int i=0;i<10;i++){
                retry1://(b)
                while(i==5){
                    continue retry1;
                }
                System.out.println("RetryTest.testRetry()i="+i);
            }
        }
        
        /**
         *  break retry 配合使用,即便是多层循环,也可以跳出到retry: 标记处的循环。
         * @param a
         * @return
         */
        public static boolean testRetry3(int a){
                     retry:
                    for (;;) {
                        System.out.println("RetryTest.testRetry3()retry="+a);
                            if(a==1)
                            return false;
    
                        for (;;) {
                                if(a==2)
                                return false;
                                if(a==3)
                                break retry;
                                if (a==4)
                                continue retry;
                            // else CAS failed due to workerCount change; retry inner loop
                        }
                    }
                    System.out.println("RetryTest======>执行最后");
                    return false;
        }
    }
    View Code
  • 相关阅读:
    快速排序法
    ios随机数
    ios简单更改系统TabBar的高度
    ios电话拨打进行监听电话状态
    iosUISegmentedControl的基本设置
    ios使用xcode进行Archive打包上传出现的常见错误
    ios实现文字的自适应
    ios 给view添加一个渐变的背景色
    iOSNSDate的相关操作
    ios导航栏又按钮添加图片后使其保持原色
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/8119060.html
Copyright © 2011-2022 走看看