推奨されます, 2019

エディターズチョイス

休憩と継続の違い

「break」と「continue」はどちらも「ジャンプ」文で、プログラムの制御をプログラムの別の部分に移します。 C ++は4つのジャンプステートメント、すなわち 'return'、 'goto'、 'break'および 'continue'をサポートしています。 Javaは3つのジャンプステートメント 'break'、 'continue'、 'return'をサポートしています。 breakとcontinueの主な違いは、breakはループの即時終了に使用されるのに対し、continueは現在の繰り返しを終了し、ループの次の繰り返しに制御を再開することです。 C ++とJavaのコンテキストでbreakとcontinueの違いを調べましょう。

比較表:

比較基準ブレーク持続する
仕事
ループの残りの繰り返しの実行を終了します。ループの現在の反復のみを終了します。
中断/続行後の制御'break'は、その 'break'を囲むループの終わりまでプログラムの制御を再開します。'continue'は、 'continue'を囲むそのループの次の繰り返しまでプログラムの制御を再開します。
原因それはループの早期終了を引き起こします。それは次の繰り返しの早期実行を引き起こします。
継続'break'はループの継続を止めます。'continue'はループの継続を止めるのではなく、現在の繰り返しを止めるだけです。
その他の用途'break'は 'switch'、 'label'と一緒に使用できます。'continue'は 'switch'と 'labels'で実行することはできません。

休憩の定義

C ++では、breakには2つの使用法しかありません。すなわち、最初に「switch文の中のcaseの実行を終了させる」ために使用されます。 次に、「ループを終了し、ループに続く次のステートメントに制御を再開する」ことです。 しかし、Javaではbreakに最初の3つの用途があります。2番目のbreakを囲むループを終了するために2番目と3番目に前述のようにJavaは 'goto'文を提供しませんが、拡張形式のbreakを使用することができます。後藤の場所。

見てみましょう、 'break'のそれぞれの使い方について詳しく見てみましょう。

最初にswitch in caseの実行を終了するために使用します。 スイッチの中断は、それを囲むスイッチにのみ影響します。スイッチを囲むループには影響しません。

 // C ++との関連で // C ++のコンテキストでスイッチインブレークを使用する。 switch(整数式){ケース1:..... ..... break; ケース2:..... .....休憩。 ケース3:..... .....休憩。 デフォルト: ....... ....... } 

2番目の使用法。ループを強制的に終了させ、ループの次のステートメントから再開します。 breakステートメントがループの内側で見つかるとすぐに、そのループの本体に残っているコードを実行せずにそのループが直ちに終了し、プログラム制御はそのループの後に書かれた次のステートメントに到達します。

 // Javaクラスへのコンテキストでループを終了するためにbreakを使用するmain_class {public static void main(string args []){(int i = 0; i <100; i ++){system.out.println( "i:" + i); もし(i == 10)ならば // 'if'の内側の条件として、制御が 'for'ループから出てくる。 system.out.println( "ループはここで中断します"); }} 

breakはそれを囲むループからプログラムを終了させるだけです。 ネストループでブレークを使用すると、最も内側のループのみが分割され、外側のループには影響しません。

3番目の用途は、gotoの形式としてブレークを使用することです。 Javaは、問題なくgotoの形式としてbreakを使用します。 gotoは理解しにくい非構造化分岐を提供し、gotoはコンパイラの最適化を禁止しているので、Javaはgotoと似た拡張形式のbreakを使用し、一度に複数のブロックを終了してプログラムの制御を再開します。 break文で述べたラベル付きブロックの終わり。

宣言:

 ラベルを破る。 

ここで、「label」は特定のコードブロックの名前またはJavaの識別子であり、このラベル付きブロックはbreakステートメントを囲む必要があります。 ラベル付きbreakステートメントは、ネストしたループのセットから抜け出すために使用されます。 ラベル付きbreakステートメントが検出されると、コントロールはbreakステートメントで指定されているラベル付きブロックを終了します。
実際に見てみましょう。

 // Javaクラスのコンテキスト内でgotoの形式としてbreakを使用する。public static void main(string args []){boolean t = true; 最初の{2番目の{3番目の{system.out.println( "この3番目のブロック"); if(t)が最初に中断します。 system.out.println( "この2番目のブロック"); system.out.println( "this first block"); system.out.println( "this main block"); // output:これは3番目のブロック、これはメインブロックです 

このコードでは、コントロールが3番目のブロックに到達すると、そのprintステートメントが実行され、その後コントロールは 'if'ステートメントに再開します。それが満たされると、ラベル付きのbreakステートメントが実行されます。 breakが付いたラベルが最初なので、制御は最初にブロックの終わりの後に書かれたステートメント、すなわちprintステートメントであるメインブロックの中で再開され、それが実行されます。

継続の定義

breakはループの残りの繰り返しを終了し、コントロールをループから抜け出させるので、continueはここではbreakのように動作します。 continueステートメントは、現在の繰り返しのループ内の残りのコードの実行を停止し、そのループの次の繰り返しに制御を再開します。continueステートメントは、現在の繰り返しのコードをスキップして、ループの次の繰り返しに制御を渡します。

例でそれを理解しましょう。

 // C ++のコンテキスト内でcontinueを使用します。 // 100まで偶数を出力します。class main_class {public static void main(string args []){for(int i = 0; i <100; i ++){if(i%2!= 0)続ける; // forループで次の繰り返しに制御を再開するsystem.out.println( "i:" + i); }}} 

上記のプログラムでは、if文が満たされると、continue文が実行されます。これは、次のprint文の実行を許可せず、次のforループの繰り返しまで制御を再開します。 i = 1の場合、 'i'の奇数値に対してprintステートメントを実行せずに、 'if'条件が満たされてcontinueが実行され、制御はループの次の反復 'i = 2'に戻ります。 i = 2の場合、 'if'ステートメントは満足されません。 continueは実行されず、printステートメントは偶数である 'i'の値を出力します。

中断と続行の主な違い

  1. 基本的に、breakキーワードはループの残りの反復の残りを終了します。 一方、continueキーワードは、ループの現在の反復のみを終了します。
  2. breakキーワードが実行されると、プログラムの制御はループから抜け出し、ループの後の次のステートメントに戻ります。 continueキーワードの場合、プログラムの制御はループの次の繰り返しに戻ります。
  3. 上記ステップが終了すると、プログラムのブレーク制御の実行後にループから出ると、ブレークがループの早期終了を引き起こすことが明らかに理解される。 一方、継続は現在の繰り返しを終了させ、ループの次の繰り返しに再開するだけです。そして、continueはループの次の繰り返しの早期実行を引き起こすと言えます。
  4. breakキーワードは、実行後に残っているすべての反復を終了します。したがって、continueキーワードはループの実行を継続します。
  5. breakキーワードは、 "label"と同様に "switch"ステートメントと一緒に使用できますが、continueキーワードは、 "switch"と "label"と一緒には使用できません。

結論:

breakステートメントとcontinueステートメントはどちらも、制御をプログラムの別の部分に転送するジャンプステートメントです。 breakステートメントがコントロールをループから抜けさせるところでは、continueステートメントがコントロールをそのループの次の繰り返しに任せます。

Top