4.2.1 break制御キーワード

21354 ワード

breakは「if文以外で最も近い中括弧」の制御キーワードです.私はもうスイッチドアで見たことがあります.その時、スイッチドアを脱出するために使いました.通常breakは、重複文で特定の条件を満たすときに重複文から逃れるために使用されます.次に例を示します.
💡 繰り返し文でbreakのみを使用する例
for(int i = 0; i < 10; i++) {
System.out.println(i); // i = 0일 때 한 번만 출력 
break; // 반복문 탈출 실행 
} // ifans 제외하고 가장 가까운 중괄호 탈출 
10回繰り返し実行するfor文にはブレークポイントが含まれています.繰り返し文を実行中にbreakに遭遇した場合、if文を削除し、最近の中括弧から逃げることを意味し、for文から逃げることになります.すなわち,for文の繰返し回数にかかわらず,1つの出力のみが実行され,for文は終了する.
ただし、一度だけ値を出力したい場合は、for文を使用する必要はありません.したがって、breakキーワードのみを使用することはめったにありません.一般的にif文とともに使用され、特定の条件を満たすときに重複文を避けるように構成されています.
💡重複文でif文とbreakを使用する例
for(int i = 0; i < 10; i++) {
if(i == 5) { //if문으로 break 키워드를 실행할 조건 설정 
break;
} 
System.out.println(i); // i = 0, 1, 2, 3, 4일 때 출력
} //break로 탈출하는 중괄호
ここで覚えなければならないのは、breakを利用して脱出することがifゲートを除いて最も近い中括弧の一つであることです.したがって,二重に繰り返されるforゲート内でbreakを用いる場合,内側forゲートから脱出するしかない.次に例を示します
💡 二重forゲート内breakを用いた重複ゲートの脱出
        for (int i = 0; i < 10; i++) { // 바깥쪽 for 문
            for (int j = 0; j < 10; j++) { // 안쪽 for 문
                if (j == 3) 
                    break;
                System.out.println(i + " " + j);
            }  // break로 탈출하는 중괄호
        }
        
결과 0,0 0,1 0,2 1,0 1,1 ... 9,2
j値は3で,breakに遭遇したときに逃げる反復文は中のfor文である.脱出後も外側forゲート内部にあるため,i値の変化による繰返しは依然として有効である.すなわち,このときi=0,1,2,...9とj=0、1、2のときに出力し、合計30回の出力を実行します.
上記の例では、j=3で外forゲートから脱出する場合は、どうすればいいですか?単純な考えだけで、次の割り込みを実行する前にi値を大きな値に変更し、外部の条件式をfalseにする方法で、外部forゲートに逃げることができます.
💡 変数値を調整し、ダブルfor文を一度にポップアップ
        for(int i = 0; i < 10; i++) { // ③ i 값이 조건식을 만족하지 않아 바깥쪽 for 문 종료
            for(int j = 0; j < 10; j++) {
                if(j == 3){
                    i = 100; // ① 브레이크를 실행하기 전 i 값 변경
                    break;
                }
            System.out.println(i + ", " + j); 
            } //② 안쪽의 for 문 중괄호 탈출
        }

결과 0,0 0,1 0,2 
このようにbreakで脱出する括弧は同じであるが,その後i値を用いた条件式でfasleが出現し,最終的には二重for文からすべて脱出する.そのため、出力は3回のみです.
breakで複数の繰り返し文から一度に脱出するjavaの正式な方法はbreak+Label(ラベル)構文である.breakの後にラベルを指定すると、一度に複数の重複文から逃れることができます.ラベル名は開発者が任意に命名できます.ラベルの後にはコロンを表示する必要があります.
💡 ラベルを使用してダブルforドアを一度にポップアップ
        out: // 레이블 위치 지정(break하고자 하는 반복문 앞에 레이블 표기)
        for (int i = 0; i < 10; i++)     {
            for ( int j = 0; j < 10; j++) {
                if (j == 3)
                    break out; //out 레이블이 달린 반복문 탈출 
                System.out.println(i + ", " + j);
            }
        } // break out으로 탈출하는 중괄호
ここでbreakoutは、outラベルがある外部からドアを脱出することを意味するため、出力は3回のみ実行される(0,0,10,2).

実習

        // 단일 반복문 탈출
        for(int i = 0; i < 10; i++) {
            System.out.println(i);
            break;
        }

        for(int i = 0; i < 10; i++) {
            if(i == 5) {
                break;
            }
            System.out.println(i + " ");
        }
        System.out.println();
        System.out.println();

        //다중 반복문 탈출
        //@1개의 반복문만 탈출할 때
        for(int i = 0; i < 5; i++) {
            for(int j = 0; j < 5; j++) {
                if(j == 2) {
                    break;
                }
                System.out.println(i + ", " + j);
            }
        }
        System.out.println();

        // @ break + Label 문으로 다중 반복문 탈출
        POS1 : for(int i = 0; i < 5; i++){
            for(int j = 0; j < 5; j++) {
                if(j == 2) {
                    break POS1;
                }
                System.out.println(i + ", " + j);
            }

        }
        System.out.println();

        // @변숫값을 조정해 다중 반복문 탈출
        for(int i = 0; i < 5; i++){
            for(int j = 0; j < 5; j++){
                if(j == 2){
                    i = 100;
                    break;
                }
                System.out.println(i + ", " + j);
            }
        }
        System.out.println();
結果