Javaはキーワードを継続して中断します
1. 概要
このクイック記事では、continueおよびbreak Javaキーワードを紹介し、それらを実際に使用する方法に焦点を当てます。
簡単に言えば、これらのステートメントを実行すると、現在の制御フローが分岐し、現在の反復でコードの実行が終了します。
2. breakステートメント
break ステートメントには、ラベルなしとラベル付きの2つの形式があります。
2.1. ラベルなしブレーク
ラベルなしステートメントを使用して、 for 、 while 、または do-while ループ、およびswitch-caseブロックを終了できます。
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
}
このスニペットは、5回反復することになっているforループを定義します。 ただし、counterが3の場合、if条件が真になり、breakステートメントがループを終了します。これにより、forループの終了後に続くステートメントに制御フローが転送されます。 。
ネストされたループの場合、ラベルのないbreakステートメントは、にある内部ループのみを終了します。 外側のループは実行を継続します。
for (int rowNum = 0; rowNum < 3; rowNum++) {
for (int colNum = 0; colNum < 4; colNum++) {
if (colNum == 3) {
break;
}
}
}
このスニペットには、forループがネストされています。 colNumが3の場合、条件がtrueと評価され、breakステートメントによって内側のforループが終了します。ただし、外側のforループは反復を続けます。
2.2. breakというラベルが付いています
ラベル付きのbreakステートメントを使用して、 for 、 while 、またはdo-whileループを終了することもできます。 ラベル付きのブレークは外側のループを終了します。
終了すると、制御フローは外部ループの終了直後にステートメントに転送されます。
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つの形式があります。
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 の増分は、colNumが外側のforループの各反復で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の分岐ステートメントとして使用するさまざまな方法を見てきました。
この記事で紹介する完全なコードは、GitHubでから入手できます。