6000万ドルの損害を与えたbreak文の誤り

プログラマのためのサバイバルマニュアル』より。

1990年1月15日午後2時25分、AT&T電話網が落ちた。
電話網の稼働を再開させるまで9時間かかり、AT&Tが被った損害は6000万ドルと推計されている。

原因はC言語で書かれた次のようなコードだった。

if (condition) {
    // 仕事をする……
}
else {
    break;
}

このbreakはどのような働きをするのだろうか。

breakはif()文から抜け出すわけではない。
if()文の外側にあるwhile()やswitch()などから抜け出すのだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください