Javaはキーワードを続けて壊しています
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で利用可能]です。