zoukankan      html  css  js  c++  java
  • 使用标签代替goto关键字

    众所周知,java中没有goto语句,但是保留了goto这个关键字。由于goto是在源码级上的跳转,多次使用goto会引起代码混乱容易出错,这也是java取消goto语句的目的所在,但是goto语句也有它的优点,在少数情况下goto还是组织控制流程的最佳手段。在java中虽然没有goto,但是我们可以用标签结合关键字(break,continue)来实现goto的功能。代码如下:

     1 package demo;
     2 public class LabeledFor {
     3     public static void main(String[] args) {
     4         int i = 0;
     5         outer:
     6             for(;true;){
     7                 inner:
     8                     for(; i < 10 ; i++){
     9                         System.out.println("i = " + i);
    10                         if(i == 2){
    11                             System.out.println("continue");
    12                             continue;  //结束当前循环
    13                         }
    14                         if(i == 3){
    15                             System.out.println("break");
    16                             i++;
    17                             break;  //强制退出循环
    18                         }
    19                         if(i == 7){
    20                             System.out.println("continue outer");
    21                             i++;
    22                             continue outer;  //结束当前循环并回到标签outer处重新执行代码
    23                         }
    24                         if(i == 8){
    25                             System.out.println("break outer");
    26                             break outer;   //结束循环并回到标签outer处执行循环之外的代码
    27                         }
    28                         for(int k = 0;k < 5; k++){
    29                             if(k == 3){
    30                                 System.out.println("continue inner");
    31                                 continue inner;  //结束当前循环并回到标签inner处重新执行代码
    32                             }
    33                         }
    34                     }
    35             }    
    36         
    37         System.out.println("break outer 跳出外部循环执行剩下的代码");
    38         return;//结束return可以结束代码,可以体现更好的效果,这里就不演示了
    39     }
    40 }

    打印结果:

    i = 0
    continue inner
    i = 1
    continue inner
    i = 2
    continue
    i = 3
    break
    i = 4
    continue inner
    i = 5
    continue inner
    i = 6
    continue inner
    i = 7
    continue outer
    i = 8
    break outer
    

      同样的规则也适用while循环

  • 相关阅读:
    赫尔维茨公式
    从解析几何的角度分析二次型
    Struts 1 Struts 2
    记一次服务器被入侵的调查取证
    契约式设计 契约式编程 Design by contract
    lsblk df
    Linux Find Out Last System Reboot Time and Date Command 登录安全 开关机 记录 帐号审计 历史记录命令条数
    Infrastructure for container projects.
    更新文档 版本控制 多版本并发控制
    Building Microservices: Using an API Gateway
  • 原文地址:https://www.cnblogs.com/dyfbk/p/6864241.html
Copyright © 2011-2022 走看看