Javaでは、breakステートメントの3つの使用法があります。1つはswitchステートメントのステートメントのシーケンスを終了すること、2つ目はループを終了すること、3つ目はgotoステートメントの「文明化された」形式です。
gotoステートメントはプログラムの構造を破壊することがわかっているため、通常、この機能は使用しません。ただし、場合によっては、gotoステートメントがプロセス制御に役立ち、構造が合法であることがあります。
たとえば、深くネストされた一連のループを終了する場合、gotoステートメントは非常に便利です。gotoキーワードはJavaで予約されていますが、gotoステートメントはなく、このキーワードを使用する場所もありません。したがって、gotoステートメントと同様の関数を使用できるようにするために、Javaはbreakステートメントの拡張形式を定義します。
つまり、この形式のbreakステートメントを使用して、1つ以上のコードブロックを中断できます。また、これらのコードブロックは、ループまたはswitchステートメントの一部である必要はなく、任意のコードブロックにすることができます。
さらに、この形式のbreakステートメントはラベルを使用して機能するため、実行を続行する場所を正確に指定できます。
ラベルを使用したbreakステートメントの一般的な文法形式は次のとおりです
。breaklabe
labelは、コードブロックのラベルの名前です。独立したコードブロックまたは別のステートメントのターゲットコードブロックにすることができます。
この形式のbreakステートメントが実行されると、プログラムの実行制御は、ラベルで指定されたコードブロックからジャンプします。ラベルの付いたコードブロックには、breakステートメントが含まれている必要がありますが、すぐにbreakステートメントが含まれている必要はありません。 。
つまり、ラベル付きのbreakステートメントを使用して、ネストされた一連のコードからジャンプできます。ただし、breakステートメントを使用して、breakステートメントを含まないコードブロックから制御を転送することはできません。
コードブロックに名前を付けるには、コードブロックの前にラベルを付けることができます。ラベルには、有効なJava識別子の後にコロンを付けることができます。
コードブロックに名前が付けられている限り、名前付きラベルをbreakステートメントのターゲットとして使用できるため、コードブロックから飛び出して、識別されたコードブロックの最後で実行を再開できます。
次のプログラムコード:
class Dome {
public static void main(String[] args) {
a:{
System.out.println("0");
b:{
System.out.println("1");
c:{
System.out.println("2");
if(1==1)
break a;
}
System.out.println("3");
}a
System.out.println("4");
}
System.out.println("5");
}
}
したがって、この拡張形式のbreakステートメントは、gotoステートメントの問題なしにgotoステートメントの利点を提供します。
補足知識:Javaの複数のループとbreak andcontinueの使用方法
複数のループ
ループ本体にループステートメントを含む構造は、複数ループと呼ばれます。3つのループステートメントは、単独で、または相互にネストできます。最も一般的なのは、二重ループです。ダブルループでは、外側のループが実行されるたびに、内側のループが1回実行されます。
次のように:
例:*を使用して長方形を印刷します。
実装コードは次のとおりです。
実行プロセス:i = 1の場合、外側のループ条件が確立され、内側のループに入り、コンテンツの最初の行の印刷を開始します。このとき、jは1から始まり、8回ループし、内側のループが終了した後にラップして、最初の行で8 *の出力を達成します。
次に、外側のループiに戻って2に変更し、次の行を印刷する準備をします。以下同様に、長方形が印刷されるまで続けます。
for(int i=0;i<5;i++){
for(int j=1;j<=5;j++){
//i每增加1,也就是for循环一次,这个循环for要循环完,要循环5次。也就是一圈。
}
}
簡単に言えば、外側のレイヤーが1回実行されると、内側のレイヤー(の2番目のレイヤー)は既に実行されています。
中断し、ステートメントを続行します
breakステートメントとcontinueステートメントはどちらも、ループの実行フローを制御できます。breakステートメントは、ループ全体から直接ジャンプできます。デフォルトでは、実行のために次のステートメントに直接ジャンプします。たとえば、次のような三角形のアスタリスクを出力したいとします。
if-elseでブレークを使用して、現在のループから直接ジャンプすることができます。
マルチレベルループでは、breakステートメントは1レベルだけ外側にジャンプします。
continueステートメントの機能は、ループ本体の残りのステートメントをスキップしてループの最後までスキップし、次のループの実行を強制することです。
継続ステートメントは、for、while、do-whileなどのループ本体でのみ使用され、ループを高速化するためにif条件ステートメントと一緒に使用されることがよくあります。
for (int i = 0; i < 3; i++) {
System.out.println("开始第" + i + "次for循环");
if (i == 1) {
continue;//程序运行后面的代码就不会执行,但循环不会退出。
}
System.out.println("看看continue后这里执行了吗?");
}
上記のステートメントでbreakを使用すると、1の後のループは実行されません。
上記のJavaでのbreakの3番目の使用法は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。また、エディターをサポートできることを願っています。