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.pswp.cn/news/260331.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260331.shtml
英文地址,請注明出處:http://en.pswp.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;大大的簡化了…