JAVAでのブレークの無数の使用法の3つ

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番目の使用法は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。また、エディターをサポートできることを願っています。

おすすめ

転載: blog.csdn.net/dcj19980805/article/details/115206571