Javaはキーワードを続けて壊しています

Javaはキーワードを続行および中断します

1. 概要

この簡単な記事では、continueおよびbreak Javaキーワードを紹介し、それらを実際に使用する方法に焦点を当てます。

簡単に言えば、これらのステートメントの実行は、現在の制御フローの分岐を引き起こし、現在の反復でコードの実行を終了します。

2. breakステートメント

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

image

2.1. ラベルなしbreak

ラベルのないステートメントを使用して、forwhile、またはdo-whileループとswitch-caseブロックを終了できます。

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

このスニペットは、5回反復することになっているforループを定義します。 But when counter equals 3, the if condition becomes true and the break statement terminates the loop.これにより、制御フローは、forループの終了後に続くステートメントに転送されます。

ネストされたループの場合、an unlabeled break statement only terminates the inner loop that it’s in。 外部ループは実行を継続します。

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

このスニペットには、ネストされたforループがあります。 When colNum equals 3, the if the condition evaluates to true and the break statement causes the inner for loop to terminate.ただし、外側のforループは反復を続けます。

2.2. ラベル付きbreak

ラベル付きのbreakステートメントを使用して、forwhile、またはdo-whileループを終了することもできます。 A labeled break terminates the outer loop

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

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ステートメント

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

image

3.1. ラベルなしcontinue

ラベルのないステートメントを使用して、forwhile、またはdo-whileループの現在の反復で残りのステートメントの実行をバイパスできます。 It skips to the end of the inner loop and continues the loop

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

a labeled continue statement which skips the outer loop.を使用することもできます。スキップすると、制御フローは外側のループの最後に転送され、外側のループの反復が効果的に続行されます。

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. 結論

このチュートリアルでは、キーワードbreakcontinueをJavaの分岐ステートメントとして使用するさまざまな方法を見てきました。

この記事に示されている完全なコードは、over on GitHubで入手できます。