自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java中跳出多層循環(huán)的簡單方法

開發(fā) 后端
本文詳細介紹跳出多層循環(huán)的簡單方法(Java版),希望通過本文的學習,能對你有所幫助。
在Java程序中可能使用多層循環(huán)來處理復雜的邏輯。但如果要從最內(nèi)層循環(huán)跳出最外層循環(huán)是比較麻煩。下面的代碼是一個三層循環(huán)的例子:
String[]arr=newString[]{"a","b","c"};    
for(Strings:arr)
{
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.println(sss);
    }
  }       
}

如果要從第三層循環(huán)跳出第一層循環(huán),可以通過設置標志的方法來實現(xiàn),但這比較麻煩。當然,如何使用過C或C++的開發(fā)人員可以想到使用goto語句,如下面的代碼所示:

String[]arr=newString[]{"a","b","c"};  
 
for(Strings:arr)
{
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.println(sss);
      goto label;
    }
  }       
}
label:

雖然上面的代碼看似可行,不過Java雖然還有goto關鍵字,但這個關鍵字卻不能使用(Java編譯器會拋出異常)。不過Java還提供了另外一種類似goto的解決方案,這就是break n和continue n。其中n表示標簽名。只是在Java中只能在for、while、do...while三種循環(huán)語句前面定義,標簽與循環(huán)體之間不能有任何其他的語句,如下面的標簽定義是合法的:

label: //定義標簽
for(inti=0;i<10;i++)
{
  ... ...
}

下面的標簽定義是不合法的:

label: //定義標簽
System.out.println("abcd"); //此處不能有任何Java語句
for(inti=0;i<10;i++)
{
  ... ...
}

使用break n跳出多層循環(huán)的代碼如下:

labelA:
for(Strings:arr)
{      
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.print(sss);
      breaklabelA;
    }
  }       
}

上面的代碼只輸出了一個a,在第三層使用break labelA可以理解為如下的代碼形式(雖然這段代碼并不符合Java語法規(guī)則):

for(Strings:arr)
{      
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.print(sss);
      gotolabelA;
    }
  }       
}
labelA:

當然,還可以使用continue labelA繼續(xù)執(zhí)行某一層的循環(huán),代碼如下:

labelA:
for(Strings:arr)
{      
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.print(sss);
      continuelabelA;
    }
  }       
}

上面的代碼輸出“aaa”,讀者可以將上面的代碼理解為如下的形式(只是代碼形式,并不符合Java語法規(guī)則):

for(Strings:arr)
{      
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.print(sss);
      gotolabelA;
    }
  }       
labelA:
}

當然,也可以按同樣的方法跳出或繼續(xù)第二層循環(huán),代碼如下:

for(Strings:arr)
{      
  labelA:
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.print(sss);
      breaklabelA;
    }
  }       
}

上面的代碼輸出“aaa”。

for(Strings:arr)
{      
  labelA:
  for(Stringss:arr)
  {
    for(Stringsss:arr)
    {
      System.out.print(sss);
      continuelabelA;
    }
  }       
}

上面的代碼輸出“aaaaaaaaa”。

【編輯推薦】

  1. 如何用Java實現(xiàn)FTP服務器
  2. 如何解決Java ME設備碎片問題
  3. 如何在Java Web應用中獲取Spring的ApplicationContext
  4. Java EE的Web服務原理和體系結構
責任編輯:楊鵬飛 來源: BlogJava
相關推薦

2010-06-08 17:46:31

OpenSUSE安裝

2010-07-20 14:07:31

更改TELNET端口

2010-08-06 13:23:58

NFS配置

2024-08-02 08:43:24

JavaScript開發(fā)者工具箱深拷貝

2010-11-23 16:21:07

MySQL大表備份

2009-08-12 16:47:36

C#轉換農(nóng)歷

2010-03-15 14:10:34

ubuntu系統(tǒng)

2010-09-30 14:01:38

2019-12-24 11:16:09

Windows 10Windows任務欄

2011-05-18 13:37:26

LINQ

2011-04-06 09:09:17

MySQL數(shù)據(jù)庫備份

2010-03-03 13:56:43

Linux ubant

2023-03-16 08:14:57

2011-03-02 10:01:15

2011-03-01 09:53:18

卸載PureFTPd

2019-02-13 14:55:22

Windows 10視頻刪除聲音

2010-08-25 20:37:05

DHCP服務器

2023-08-26 21:06:25

2010-05-17 10:24:44

MySQL數(shù)據(jù)庫

2010-08-27 10:40:58

Linux DHCP服
點贊
收藏

51CTO技術棧公眾號