break文

for文while文などのループを途中で脱出する構文の、プログラミング言語別メモ。

switch構文で fall through を防ぐために break を使う言語もある。

Perlではlastと書く。

C言語, C++

for文、while文、do while文の中で break と書くと、そこでループを途中で脱出する。switchでも使う。

Go言語 (golang)

forswitch文、select文の中で break と書くと、そこでループを途中で脱出する。

Break statements | The Go Programming Language Specification
http://golang-jp.org/ref/spec#Break_statements

Java

for文、while文、do while文の中で break と書くと、そこでループを途中で脱出する。

breakはデフォルトではもっとも内側のループを脱出するだけなので、多重ループの外側のループを脱出したい場合にはラベル付きのbreakを使う。 for文、while文などにはラベルを付けることができ、 breakでどのループを脱出するのかをラベルで指定する。

foo: for(int i = 0; i < 10; i++){
    bar: for(int j = 0; j < 10; j++){
        System.out.println(String.format("i=%d, j=%d", i, j));
        if(i + j == 14){
            break foo;
            // i=5, j=9 を出力したところで終了する
        }
    }
}

ループ以外でも通常のブロックの中でもbreakを使用することができる。ただしこの場合はラベルが必須。ラベルがないとコンパイルエラーになる。

int k = 0;
hoge: {
    System.out.println("STEP 1");
    if(k == 0){
        break hoge;
        // hogeブロックを途中で終了するので、
        // STEP 1だけを出力する
    }
    
    // ここは実行されない
    System.out.println("STEP 2");
}

breakswitchでも使う。

Scala

breakは関数型言語っぽくないので、たぶんScalaにはこの構文はない。

ここに無理やりbreakするサンプルがあるけど。

PHP

for文、foreach文、while文、do-while文、switch文の中で、break; と書くと、そこでループを脱出する。引数の指定により複数回層のループ構造を脱出することもできる。

break文 | PHP Manual
http://php.net/manual/ja/control-structures.break.php

Python

while文 や for文の中で break と書くと、そこでループを脱出する。

break の結果、tryをも脱出する場合、finally節があれば、脱出直前にfinally節を実行する。

Ruby

繰り返し処理の中で break と書くと、そこでループを脱出する。

ブロック付きメソッド呼び出しでも、ブロックの中で使用でき、メソッドが繰り返し処理をするものであれば、ループから抜け出す。繰り返し処理でないブロック付きメソッド呼び出しでも同様に、ブロックから脱出してさらにそのブロック付きメソッド呼び出しからも脱出する。

break に値を指定すると繰り返し分の返り値を指定することになる。以下の例は目的がよくわからないが。

print (while true
  break 1
end)
# => 1

Perl

whileの中で last と書くと、そこでループを脱出する。

last のあとにラベルを書くと、そのラベルのループを脱出することができ、多段ループの脱出もできる。

OUTER_LOOP: while () {
    while () {
        ...;
        last OUTER_LOOP if ...;
        ...;
    }
}

sh (シェルスクリプト)

whileforの中で break と書くと、そこでループを脱出する。

R言語

break と書くと、そこでループを脱出する。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。