Break文
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Break文" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2011年2月)

break文は、プログラミング言語ループ制御構造で用いられる文で、最も内側のfor文while文do-while文から脱出する。また、C言語のようなswitch文がある言語では、(ループではないが)switch文から脱出する際にも使用される[1]
構文と意味

C言語、およびそれに仕様を類似させている言語が備えるのひとつであり、構文としてはキーワード break とセミコロンから成る。Perlではlastというキーワードである。 break;

ループ中(またはswitch文)の内部で実行されると、ループ全体(またはswitch文)を打ち切って、次の文へと制御を移す。

C言語において、単純なループからbreak文を使って抜ける例を示す。while (1) { if (条件式) break;}

この例では、if文の条件式が成立するとbreak文が実行され、このループの直後に制御が移される。

switch文から脱出する例も示す。詳細はswitch文を参照。switch (式) {case 定数式: 文 break;default: 文 break;}
多重ループからの抜け出し
C言語

最初の例として、内側のループからの抜け出しを示す。while (1) { while (1) { if (条件式) break; }}

このコードのbreak;は内側のループのみから抜け出す。外側のwhileループは無限ループになる。

次に、多重ループからの抜け出しについて論じる。

C言語では、多重ループから一気に抜ける際にはgoto文を使用することができる[2]。while (1) { while (1) { if (条件式) goto label; }}label: ;

もしgoto文を使わずにbreak文を使って書くとすれば、一例としては以下のようになり、複雑かつ冗長となる。複雑度の上昇はバグの混入を許す原因ともなる。int flag = 0;while (1) { while (1) { if (条件式) { flag = 1; break; } } if (flag == 1) { break; }}

ほかにも、関数をそのまま脱出して呼び出し元に制御を返してよいということが前提にあるのであれば、多重ループを脱出するのにreturn文を使うこともできる。while (1) { while (1) { if (条件式) return; }}

このような場合について、gotoを使うのと同程度に明瞭簡潔に書けるようにするため、次節以降で述べるように、gotoを廃した言語では、ラベル付きbreakなどの「弱められたgoto」と言えるような機能が考案されている。
Java および JavaScriptlabel: // 外側のwhile文にラベルをつける while (true) { while (true) { if (条件式) break label; } }

JavaJavaScriptはgoto文をサポートしておらず、代わりにラベル指定付きのbreak文を使うことで多重ループから一気に抜けることができる。
PHPwhile (true) { while (true) { if (条件式) break 2; }}

PHPではgoto文がバージョン5.3から実装されたが、break文にループを抜ける段数を指定することも可能である[3]
脚注^ このbreak文の性質上、ループ脱出のためのbreak文を含むif文をswitch文で置き換えようとする際には注意が必要である。一例としてはそのようなコードによるバグが、1990年1月15日に米国AT&Tの長距離電話網が大規模に麻痺する障害を起こした。詳細は「 ⇒All Circuits are Busy Now: The 1990 AT&T Long Distance Network Collapse」を参照。en:List of software bugs#Telecommunicationsも参照。
^ 最後の「label:」の後のセミコロンは「空の文」である。C言語の標準仕様では、ラベルは「ラベル付き文」としてしか存在できないので、ラベルの後に何もしない場合には構文規則上「空の文」を追加しなければならない(@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}多くの処理系では、仕様を拡張しているが[要出典])。
^break PHPマニュアル、2015年4月3日閲覧。

関連項目

continue文
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:12 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef