Usage break statement Java foundation -break label with a label.

  • It is to see RocketMQ the Client today, when there is a write Java which have not seen anything - - record it.
  • It is also the break with a label;
    RocketMQ the Client uses
while(true) {
                label122: {
                               switch(communicationMode) {
                                case ASYNC:
                                    return null;
                                case ONEWAY:
                                    return null;
                                case SYNC:
                                    if () {
                                        return sendResult;
                                    }
                                default:
                                    break label122;
                                }
                          }
           }
  • In fact, it is easy to understand: mark a block of code is executed when the default is label122 time to break the code block is executed.
  • How to use it?
package io.ilss.rocketmq.demo;

/**
 * className Main
 * description Main
 *
 * @author feng
 * @version 1.0
 * @date 2019-03-10 13:45
 */
public class Main {
    public static void main(String[] args) {
        label1:
        for (int i = 0; i < 10; i++) {
            label2:
            if (i > 0) {
                if (i > 8) {
                    break label1;
                }
                System.out.print(i + " ");
                if (i > 3) {
                    break label2;
                }
                System.out.print(" if end ");

            }

            label3: {
                if (i > 5) {
                    break label3;
                }
                System.out.print(", label3 block");
            }
            System.out.println(", for end ");
        }
    }
}

  • The following is the output:
/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=52397:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/lib/tools.jar:/Users/feng/Projects/idea/springboot-rocketmq-ilss/target/classes:/Users/feng/Developer/mvn-repository/org/springframework/boot/spring-boot-starter/2.1.3.RELEASE/spring-boot-starter-2.1.3.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/boot/spring-boot/2.1.3.RELEASE/spring-boot-2.1.3.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/spring-context/5.1.5.RELEASE/spring-context-5.1.5.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/spring-aop/5.1.5.RELEASE/spring-aop-5.1.5.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/spring-beans/5.1.5.RELEASE/spring-beans-5.1.5.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/spring-expression/5.1.5.RELEASE/spring-expression-5.1.5.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/boot/spring-boot-autoconfigure/2.1.3.RELEASE/spring-boot-autoconfigure-2.1.3.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/boot/spring-boot-starter-logging/2.1.3.RELEASE/spring-boot-starter-logging-2.1.3.RELEASE.jar:/Users/feng/Developer/mvn-repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/feng/Developer/mvn-repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/feng/Developer/mvn-repository/org/apache/logging/log4j/log4j-to-slf4j/2.11.2/log4j-to-slf4j-2.11.2.jar:/Users/feng/Developer/mvn-repository/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar:/Users/feng/Developer/mvn-repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/Users/feng/Developer/mvn-repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Users/feng/Developer/mvn-repository/org/springframework/spring-core/5.1.5.RELEASE/spring-core-5.1.5.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/springframework/spring-jcl/5.1.5.RELEASE/spring-jcl-5.1.5.RELEASE.jar:/Users/feng/Developer/mvn-repository/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar:/Users/feng/Developer/mvn-repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/feng/Developer/mvn-repository/org/apache/rocketmq/rocketmq-client/4.4.0/rocketmq-client-4.4.0.jar:/Users/feng/Developer/mvn-repository/org/apache/rocketmq/rocketmq-common/4.4.0/rocketmq-common-4.4.0.jar:/Users/feng/Developer/mvn-repository/org/apache/rocketmq/rocketmq-remoting/4.4.0/rocketmq-remoting-4.4.0.jar:/Users/feng/Developer/mvn-repository/com/alibaba/fastjson/1.2.51/fastjson-1.2.51.jar:/Users/feng/Developer/mvn-repository/io/netty/netty-all/4.1.33.Final/netty-all-4.1.33.Final.jar:/Users/feng/Developer/mvn-repository/org/apache/rocketmq/rocketmq-logging/4.4.0/rocketmq-logging-4.4.0.jar:/Users/feng/Developer/mvn-repository/io/netty/netty-tcnative-boringssl-static/2.0.20.Final/netty-tcnative-boringssl-static-2.0.20.Final.jar:/Users/feng/Developer/mvn-repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar io.ilss.rocketmq.demo.Main
, label3 block, for end 
1  if end , label3 block, for end 
2  if end , label3 block, for end 
3  if end , label3 block, for end 
4 , label3 block, for end 
5 , label3 block, for end 
6 , for end 
7 , for end 
8 , for end 

Process finished with exit code 0

Easy to see that this is in fact the condition jumped to block a given label. Not executed. And a separate break fact similar, acting alone break in circulation, with a label is applied to break the code block you defined. But one thing, the position BREAK label must be inside the label code block. Otherwise invalid syntax error.

So slightly.

Published 34 original articles · won praise 7 · views 8173

Guess you like

Origin blog.csdn.net/ilo114/article/details/88377935