java版的跳转操作

       在介绍java里面的跳转操作之前呢,我们来看看拥有这一跳转功能的主人,goto语句,这种语法可是很强大的,下面将给大家讲解一下。

       1、goto的定义

            goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号“:”。语句标号起标识语句的作用,与goto 语句配合使用

              如: label: i++;

              loop:while(x<7);

              C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向,转去执行语句标号所标识的语句,goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

        2、在java与goto相关的应用

             在java当中,goto语句是在源码级上进行跳转,这使得程序的流程很混乱,而且在开发者调试程序或别人理解是造成了极大的困难,除此之外,它的能力非常强,能够跳出java权限控制的范围,也是就是说,它想跳到哪儿就可以跳到哪儿去,别的根本束缚不了它,从而严重破坏了java的封装性,而且如果使用了它,在以后的调试和维护过程中增加了非常大的难度,因此在java里面很少有人敢使用它,除非你是大牛,能够自由操控底层框架,换句话说就是这种语法一般是在编写底层框架的时候的才会使用到,而且也使用的特别频繁。

             尽管goto仍是java中的一个保留字,但我们一般在语言中也并未使用它;java没有goto。但是呢,java也可以完成一些类似于跳转的操作,这就得和break和continue两个关键词连用了,它们其实不是一个跳转,而是中断迭代语句的一种方法。这种方法与goto语句有个相同机制:标签。

         3、java跳转操作实例        

              label:
              outer-iteration{
                    inner-iteration{
                         if( ){
                             //... 
                             break;(1)
                         }
                         esle if( ){
                             //...
                            continue ;(2)
                         }
                         else if ( ) {
                             //...
                             continue label ;(3)
                         }
                         else if ( ) {
                             //...
                             break label ;(4)
                         }
                    }
              } 

                  

(1)break,中断内部迭代,回到外部迭代然后继续循环

(2)continue,使执行点移回内部迭代的起始处继续迭代

(3)continue label,中断内部迭代和外部迭代,回到label标签处,随后继续进行迭代(从外部开始)

(4)break label, 中断内部迭代和外部迭代,并且回到label处,但是,不会重新进行迭代(完全终止了两个迭代)。




  

       






猜你喜欢

转载自blog.csdn.net/weixin_40263603/article/details/78846660