java 循环标记_深入浅析Java 循环中标签的作用

continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环。在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使程序的结构紊乱,可读性变差。因此Java就发明了一种带标签的continue和break语句,实际上它是一种带限制的专门用于循环的goto语句。

通常情况下我们使用的continue(或break)语句不带标签,这时也就是默认在当前的循环中执行continue(或break)语句。带标签的循环实际上就是给这个循环起了个名字,当使用“continue(或break)+标签”语句时实际上就是在标签所在的循环执行continue(或break)语句。

现在我们用三个例子来说明带标签的循环。

1. 不带标签的二重循环

package javaleanning;

public class LableTest {

public static void main(String[] args) {

for(int i = 0; i < 10; i++){

for(int j = 0; j < 10; j++){

System.out.print("("+i+","+j+") ");

}

System.out.println();

}

}

}

运行结果

(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9)

(1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)

(2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)

(3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)

(4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)

(5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)

(6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)

(7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)

(8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)

(9,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)

2. 带标签的二重循环,“break+标签”语句

在这个例子中是个二重for循环,我们给外层循起始处加了标签(也就是说给外层循环起了个名字)“outerCycle”,在内层循环使用“break outerCycle”时,就相当于在outerCycle这个循环中直接使用break语句。

package javaleanning;

public class LableTest {

public static void main(String[] args) {

outerCycle:

for(int i = 0; i < 10; i++){

for(int j = 0; j < 10; j++){

if(j == 5){

break outerCycle;

}

System.out.print("("+i+","+j+") ");

}

System.out.println();

}

}

}

运行结果

(0,0) (0,1) (0,2) (0,3) (0,4)

3. 带标签的二重循环,“continue+标签”语句

在这个例子中是个二重for循环,我们给外层循起始处加了标签(也就是说给外层循环起了个名字)“outerCycle”,在内层循环使用“continue outerCycle”时,就相当于在outerCycle这个循环中直接使用continue语句。

package javaleanning;

public class LableTest {

public static void main(String[] args) {

outerCycle:

for(int i = 0; i < 10; i++){

for(int j = 0; j < 10; j++){

if(j == 5){

continue outerCycle;

}

System.out.print("("+i+","+j+") ");

}

System.out.println();

}

}

}

运行结果

(0,0) (0,1) (0,2) (0,3) (0,4) (1,0) (1,1) (1,2) (1,3) (1,4) (2,0) (2,1) (2,2) (2,3) (2,4) (3,0) (3,1) (3,2) (3,3) (3,4) (4,0) (4,1) (4,2) (4,3) (4,4) (5,0) (5,1) (5,2) (5,3) (5,4) (6,0) (6,1) (6,2) (6,3) (6,4) (7,0) (7,1) (7,2) (7,3) (7,4) (8,0) (8,1) (8,2) (8,3) (8,4) (9,0) (9,1) (9,2) (9,3) (9,4)

注意:实际运行结果全部在一行显示(即没有执行换行语句),现在这样的显示结果仅仅是出于排版的原因

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS,Jquery 调用 C#WebService

1&#xff0c;需要在服务下面把代码的注释去掉 // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务&#xff0c;请取消对下行的注释。   //[System.Web.Script.Services.ScriptService] 2,JS 调用方法如下 var request <?xml version"1.0" encoding"…

iOS tabview 适配问题

ios7的UITableView实现ios6的圆角效果 iOS7 UITableView做成类似iOS6风格 在iOS7的时候我们会发现cell的默认线条会向右偏移&#xff0c;使左边空出了一些位置&#xff0c;这时候我们可以调用如下的方法来解决。这样我们的cell就会和iOS6前的一样铺满整个宽度了。 if ([tableVi…

PHP学习总结(14)——PHP入门篇之常用运算符

一、什么是运算符什么是运算符&#xff1f;运算符是告诉PHP做相关运算的标识符号。例如&#xff0c;你需要计算123乘以456等于多少&#xff0c;这时候就需要一个符号&#xff0c;告诉服务器&#xff0c;你需要做乘法运算。PHP中的运算符有哪些&#xff1f;PHP运算符一般分为算术…

百度时间显示_文章的发布时间对百度优化网站重要吗

文章的发布时间对百度优化网站重要吗&#xff1f;这个问题&#xff0c;相信很多初做网站优化的萌新朋友都会问到&#xff0c;以小匠个人的经历来分享这个问题的经验&#xff0c;小匠认为&#xff0c;文章的发布时间对优化网站是非常重要的&#xff0c;下面小匠将从实际经历来给…

循环链表解决约瑟夫环问题

约瑟夫环问题可以简单的使用数组的方式实现&#xff0c;但是现在我使用循环链表的方法来实现&#xff0c;因为上午看到一道面试题规定使用循环链表解决约瑟夫环问题。 什么是约瑟夫环&#xff1f; “约瑟夫环是一个数学的应用问题&#xff1a;已知n个人&#xff08;以编号1&…

java 什么时候进行垃圾回收_java什么时候进行垃圾回收,垃圾回收的执行流程

java的垃圾回收分为三个区域新生代 老年代 永久代一个对象实例化时 先去看伊甸园有没有足够的空间如果有 不进行垃圾回收 ,对象直接在伊甸园存储.如果伊甸园内存已满,会进行一次minor gc然后再进行判断伊甸园中的内存是否足够如果不足 则去看存活区的内存是否足够.如果内存足够…

常用的webservice接口

商业和贸易&#xff1a; 1、股票行情数据 WEB 服务&#xff08;支持香港、深圳、上海基金、债券和股票&#xff1b;支持多股票同时查询&#xff09; Endpoint: http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx Disco: http://webservice.webxml.com.cn/WebServ…

基于HTML5 Canvas 实现矢量工控风机叶轮旋转

之前在拓扑上的应用都是些静态的图元&#xff0c;今天我们将在拓扑上设计一个会动的图元——叶轮旋转。 先看看最后我们实现的效果&#xff1a;http://www.hightopo.com/demo/fan/index.html 我们先来看下这个叶轮模型长什么样 从模型上看&#xff0c;这个叶轮模型有三个叶片&a…

java 并发模型总类_java并发编程系列-内存模型基础

java线程之间的通信对程序开发人员是完全透明的&#xff0c;内存的可见性问题很容易困扰很多开发人员。本篇博文将揭开java内存模型的神秘面纱&#xff0c;来看看内存模型到底是怎样的。并发编程模型的分类并发编程中需要处理的两个关键问题&#xff1a;线程之间如何通信线程之…

python调用java的jar包_python调用java的jar包报错127

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼最近在弄python需要调用到Java的jar包&#xff0c;按照网上的教程走&#xff0c;最后总是报错No matching overloads found for [init in find. at native\common\jp_method.cpp:127Java&#xff1a;package aes;import com.sun.cr…

iphone、Android接收System.Net.Mail发的邮件标题乱码

参考地址&#xff1a;http://blog.csdn.net/whowhen21/article/details/5959225 在做项目时候&#xff0c;用到.Net的System.Net.Mail发送邮件&#xff0c;经测试&#xff0c;发现如果标题过长&#xff0c;收到的就会是乱码了(那种Base64格式的数据)&#xff0c;几经测试&#…

数据仓库与数据挖掘的一些基本概念

下面内容摘自互联网并作了整理。 名词&#xff1a; BI(Business Intelligence)&#xff1a;商业智能&#xff0c; DW(Data Warehouse)&#xff1a;数据仓库&#xff0c;详见正文Q1部分。 OLTP(On-Line Transaction Processing)&#xff1a;联机事务处理 也称为面向交易的处理系…

ATS读小文件(内存命中)

一个资源根据其大小可能会存在多个存储对象中。如果足够小&#xff08;连同doc结构的大小小于一个fragment的size&#xff09;&#xff0c;连同这个资源的meta信息一起存储在一个doc中。如果比较大&#xff0c;第一个存储对象保存资源的meta信息&#xff0c;后面跟着若干个frag…

python 加密解密_python加密解密

EncodeFile(python2.7加密)# -*- coding: utf8 -*-import base64import sysreload(sys)sys.setdefaultencoding(utf8)inFilesys.argv[1]try:fin open(inFile, "rb")fout open(inFile".txt", "w")base64.encode(fin, fout)passexcept Exception…

java double 两位_java double 保留两位小数

java保留两位小数问题&#xff1a;方式一&#xff1a;四舍五入double f 111231.5585;BigDecimal b new BigDecimal(f);double f1 b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();保留两位小数---------------------------------------------…

fatal error C1902: 程序数据库管理器不匹配;请检查安装解决

终于找到原因了&#xff0c;原来是我安装的字体渲染&#xff0c;并且采用注册表的加载方式&#xff01;改掉就好了&#xff01;上天哪&#xff0c;这是怎么影响到的 卸载MacType程序后&#xff0c;进行尝试&#xff01; VS2008 和 VS2010 又能用了&#xff01; 我想求教育。。。…

一分钟明确 VS manifest 原理

什么是vs 程序的manifest文件 manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单。 为什么要有manifest文件 一台pc上&#xff0c;用一组建往往会有不止一个版本号&#xff08;c:/windows/winsxs或系统文件夹下&#xff09;&#xff0c;程序在载入的时候&…

[译]多线程网络服务模型

2019独角兽企业重金招聘Python工程师标准>>> 多线程网络服务模型 /*** 谨献给Yoyo** 原文出处&#xff1a;https://www.toptal.com/software/guide-to-multi-processing-network-server-models* author dogstar.huang <chanzonghuanggmail.com> 2016-04-02*/作…

likely(x)与unlikely(x)函数,即__builtin_expect的使用

转载自&#xff1a;http://velep.com/archives/795.html 本文讲的likely()和unlikely()两个宏&#xff0c;在linux内核代码和一些应用中可常见到它们的身影。实质上&#xff0c;这两个宏是关于GCC编译器内置宏__builtin_expect的使用。顾名思义&#xff0c;likely()指“很有可能…

java mvc引擎_SpringMvc+JavaConfig+Idea 搭建项目

1.介绍之前搭建SpringMvc项目要配置一系列的配置文件&#xff0c;比如web.xml,applicationContext.xml,dispatcher.xml。Spring 3.X之后推出了基于JavaConfig方式以及注解的形式的配置。在一定程度上简化了Spring项目的配置。近几年特别火的SpringBoot&#xff0c;大大的简化了…