1概要

この簡単な記事では、

continue



break

というJavaキーワードを紹介し、それらを実際に使用する方法に焦点を当てます。

簡単に言うと、これらのステートメントを実行すると、現在の制御フローが分岐し、現在の反復でコードの実行が終了します。


2

break

ステートメント


break

ステートメントには、ラベルなしとラベル付きの2つの形式があります。

リンク:/uploads/Illustration-1.jpg%201200w[]


2.1. ラベルなし

break


ラベルなしの文を使用して、

for



while

、または

do-while

ループと

switch-case

ブロックを終了できます。

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break;
    }
}

このスニペットは、5回繰り返すことになっている

for

ループを定義します。

ただし

counter

が3の場合、

if

条件は

true

になり、

break

ステートメントはループを終了します

これにより、制御フローは

for

ループの終了後に続くステートメントに転送されます。

入れ子になったループの場合、

ラベルなし

break

ステートメントは、

に含まれる内側のループのみを終了します。外部ループは実行を継続します。

for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum == 3) {
            break;
        }
    }
}

このコードは

for

ループをネストしています。


colNum

が3の場合、

if

条件が

trueに評価され、

break

ステートメントによって内側の

for

ループが終了します。


ただし、外側のfor__ループは繰り返しを続けます。


2.2. ラベル付き

break


ラベル付き

break

ステートメントを使用して、

for



while

、または

do-while

ループを終了することもできます。


break

というラベルが付いていると、外側のループが終了します

終了時に、制御フローは外部ループの終了直後にステートメントに転送されます。

compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (rowNum == 1 && colNum == 3) {
            break compare;
        }
    }
}

この例では、外側のループの直前にラベルを付けました。

rowNum

が1で

colNum

が3の場合、

if

条件は

true

と評価され、

break

ステートメントは外部ループを終了します。

その後、制御フローは外側のforループの終わりに続くステートメントに転送されます。


3 __継続ステートメント


continue

ステートメントには、ラベルなしとラベル付きの2つの形式もあります。

リンク:/uploads/Illustration-2.jpg%201200w[]


3.1. ラベルなし

継続


ラベルなしのステートメントを使用して、

for



while

、または

do-while

ループの現在の繰り返しで、残りのステートメントの実行をバイパスできます。

内側のループの終わりまでスキップしてループを続けます

:

int counter = 0;
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum != 3) {
            continue;
        }
        counter++;
    }
}

このスニペットでは、

colNum

が3に等しくないときはいつでも、ラベルなし

continue

ステートメントは現在の反復をスキップし、その反復内の変数

counter

の増分をバイパスします。ただし、外側の

for

ループは繰り返し続けます。したがって、

counter

の増分は、外側の

for

ループの各反復で

colNum

が3に等しい場合にのみ発生します。


3.2. ラベル付き

継続


また、外側のループをスキップするラベル付きの

continue

ステートメントを使用することもできます。

int counter = 0;
compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum == 3) {
            counter++;
            continue compare;
        }
    }
}

外側のループの直前にラベルを付けました。

colNum

が3に等しいときはいつも、変数

counter

がインクリメントされます。ラベル付き

continue

ステートメントは、外側の

for

ループの繰り返しをスキップさせます。

制御フローは外側のforループの終わりに転送され、それが次の繰り返しに続きます。


4結論

このチュートリアルでは、キーワード

break



continue

をJavaの分岐文として使用するさまざまな方法を説明しました。

この記事に記載されている完全なコードはhttps://github.com/eugenp/tutorials/tree/master/core-java-lang-syntax[GitHubで利用可能]です。