JAvaラベルループ
2586 ワード
転載先http://www.cnblogs.com/nullzx/
continueとbreakは、ループの実行プロセスを変更できますが、多重ループでは、この2つの文が直接内層ループから外層ループにジャンプすることはできません.C言語ではgoto文により多重ループのジャンプを実現できるが,非ループ構造でgoto文を使用するとプログラムの構造が乱れ,可読性が悪くなる.そこでJavaはラベル付きcontinueとbreak文を発明し,実際にはループ専用goto文である制限付きである.ラベルなしの二重サイクル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+")}}実行結果
(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)ラベル付き二重ループ、「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)ラベル付き二重ループ、「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)
continueとbreakは、ループの実行プロセスを変更できますが、多重ループでは、この2つの文が直接内層ループから外層ループにジャンプすることはできません.C言語ではgoto文により多重ループのジャンプを実現できるが,非ループ構造でgoto文を使用するとプログラムの構造が乱れ,可読性が悪くなる.そこでJavaはラベル付きcontinueとbreak文を発明し,実際にはループ専用goto文である制限付きである.
continue( break) , continue( break) 。 , “continue( break)+ ” continue( break) 。
。
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+")}}実行結果
(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)
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)
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)
: ( ),