2013年2月12日

CodeStudy 12-7 break のこと


制御文のまとめの続きを書こうとしている所ですが、また いつものように CodeStudy で復習をしてみようと思います。今回は break についてです。section 12-7 の問題に挑戦します。


問題


変数 i=0 から while 文でループを回し、その都度変数 count に i の値を足してみましょう。count が 150 を超えたらループを終了し、その時の i を output( ) で出力してください。




var i = 0;
var count = 0;

// 今回は意図的に無限ループを作っています。
// 必ずループの途中で break 文により、ループを中止しましょう。

while (true) {
    count += i;
    if (count > 150) {
        break;
    }
    i++;
}

// i をoutput ()で出力します。
output (i);



赤字の所が 自分で書く所です。
これは 0 + 1 + 2 + 3 + 4 + …とやっていった合計が 150 をこえたら計算のループを止めて 何回目の足し算で 止めたかを表示させるということですね。

先ず赤字の部分の
1行目 ですが、 while の条件式が true となっています。これは コード中のコメントにもあるように ずっと繰り返し続ける(無限ループ)ので、実行する処理の中に break 等を適切に入れないと、ブラウザがフリーズしたようになってしまい強制終了等 しないといけなくなったりして大変ですので注意が必要です。

2行目 では i の値を count の値に足しています。
3行目 で if 文を使って、count の値が 150 を越えたかをチェックしています。越えている場合は
4行目 の break が実行されて、ループを抜けます。
越えていない場合は
6行目 で i の値を 1 増やしてループを繰り返します。条件式が true で無限ループなので、count が 150 をこえるまで、繰り返し続けます。

ループを抜けたあとの処理は、CodeStudy おなじみの output () で i の値を表示させて終了です。

0 件のコメント:

コメントを投稿