Java标签Label,如何不使用continue和break跳出循环
生活随笔
收集整理的這篇文章主要介紹了
Java标签Label,如何不使用continue和break跳出循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 單層循環
- 雙層循環
- 多層循環
- 總結
前言
今天看同事代碼的時候看到使用label跳出循環的方式甚感驚訝,java真的是博大精深,趕緊總結一下用法。
單層循環
使用單層循環進行測試,測試代碼如下:
/*** 使用單層for循環測試*/public static void labelTest01() {System.out.println("---------使用單層for循環結合break跳出循環---------");for (int i = 0; i < 5; i++) {System.out.println("i == " + i);if (i == 2) {System.out.println("[i==" + i + "] 跳出循環");break;}}System.out.println("---------使用單層for循環結合label跳出循環---------");label:for (int i = 0; i < 5; i++) {System.out.println("i == " + i);if (i == 2) {System.out.println("[i==" + i + "] 跳出循環");break label;}}}測試結果
---------使用單層for循環結合break跳出循環--------- i == 0 i == 1 i == 2 [i==2] 跳出循環 ---------使用單層for循環結合label跳出循環--------- i == 0 i == 1 i == 2 [i==2] 跳出循環我們發現如果是這種單層的循環的話,使用label方式和break效果是一樣的。
雙層循環
使用兩層循環再次進行測試,測試代碼如下:
public static void labelTest02() {System.out.println("---------使用雙層for循環結合break跳出循環---------");for (int i = 0; i < 5; i++) {System.out.println("i == " + i);for (int j = 0; j < 5; j++) {System.out.println("i == " + i + ", j == " + j);if (i == 2 && j == 1) {System.out.println("[i == " + i + "], [j == " + j + "]跳出循環");break;}}}System.out.println("---------使用雙層for循環結合label跳出循環---------");label:for (int i = 0; i < 5; i++) {System.out.println("i == " + i);for (int j = 0; j < 5; j++) {System.out.println("i == " + i + ", j == " + j);if (i == 2 && j == 1) {System.out.println("[i == " + i + "], [j == " + j + "]跳出循環");break label;}}}}測試結果:
---------使用雙層for循環結合break跳出循環--------- i == 0 i == 0, j == 0 i == 0, j == 1 i == 0, j == 2 i == 0, j == 3 i == 0, j == 4 i == 1 i == 1, j == 0 i == 1, j == 1 i == 1, j == 2 i == 1, j == 3 i == 1, j == 4 i == 2 i == 2, j == 0 i == 2, j == 1 [i == 2], [j == 1]跳出循環 i == 3 i == 3, j == 0 i == 3, j == 1 i == 3, j == 2 i == 3, j == 3 i == 3, j == 4 i == 4 i == 4, j == 0 i == 4, j == 1 i == 4, j == 2 i == 4, j == 3 i == 4, j == 4 ---------使用雙層for循環結合label跳出循環--------- i == 0 i == 0, j == 0 i == 0, j == 1 i == 0, j == 2 i == 0, j == 3 i == 0, j == 4 i == 1 i == 1, j == 0 i == 1, j == 1 i == 1, j == 2 i == 1, j == 3 i == 1, j == 4 i == 2 i == 2, j == 0 i == 2, j == 1 [i == 2], [j == 1]跳出循環根據測試結果我們發現,普通的break只跳出了當前循環,但是使用label可以跳出雙層循環。
多層循環
使用lable做多層循環的測試,測試代碼如下:
public static void labelTest03() {System.out.println("---------使用多層循環結合label跳出循環---------");ThreadLocalRandom threadLocalRandom = ThreadLocalRandom.current();label_01:for (; ; ) {int i = threadLocalRandom.nextInt(1, 10);label_02:for (; ; ) {int j = threadLocalRandom.nextInt(1, 10);for (; ; ) {if (i != j) {System.out.println("i=" + i + " 不等于 " + "j=" + j + ",跳轉到label_02重新生成j");break label_02;} else {System.out.println("i=" + i + " 等于 " + "j=" + j + ",跳轉到label_01跳出循環");break label_01;}}}}}測試結果:
---------使用多層循環結合label跳出循環--------- i=5 不等于 j=7,跳轉到label_02重新生成j i=1 不等于 j=9,跳轉到label_02重新生成j i=4 不等于 j=1,跳轉到label_02重新生成j i=2 不等于 j=7,跳轉到label_02重新生成j i=5 等于 j=5,跳轉到label_01跳出循環我們這是使用了三個for循環,然后使用了兩個label標簽,說明一下,這個lable標簽名稱不限可以自己定義,這個lable標簽有點兒類似goto但是用法不一樣。
總結
java這種跳出循環的方式:
總結
以上是生活随笔為你收集整理的Java标签Label,如何不使用continue和break跳出循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC学习(六)——Spri
- 下一篇: Mybatis如何打印sql语句