JavaScriptの基本的な書き方 制御命令_ループ(反復処理)と例外処理
プログラミングにおいては、写経が何かと有効であると信じて、まず基本的で具体的なサンプルコードを、とにかく書くことでその所作を身に付けようと思います。
今度はループと例外処理です。
反復処理には主に下記の4つがあります。
- while文
- do...while文
- for文
- for...in文
条件式によってループを制御する while / do...while文
while / do...while文は与えられた条件文がtrueである間は、ループを繰り返します。
See the Pen 20160804_Js_while by r.shimizu (@r_shimizu) on CodePen.
See the Pen 20160804_Js_do...while by r.shimizu (@r_shimizu) on CodePen.
上記の両者、実行結果は同じですが、仮に「x=10」の場合だと、結果が変わります。
- while文の実行結果は 何も出力されません(コードの初期に条件式があり、判定ではじかれたため_前置判定)
- do...while文の実行結果は「xの値は10」というメッセージが一回だけ表示されます。(必ず一回は処理が入るのが特徴_後置判定)
指定回数だけループ処理する for文
あらかじめ指定された回数だけ繰り返し処理をおこなうのがfor文です。
See the Pen 20160804_for by r.shimizu (@r_shimizu) on CodePen.
配列内の要素を順に処理する for...in文
構文
for (仮変数 in 配列 / オブジェクト) { ループ内で実行するコマンド ; }
仮変数には、配列 / 連想配列やオブジェクトから要素のインデックス番号やキー名、メンバ名が格納されて、for...in ブロックの中で要素値を参照する際に使用することができます。
仮変数に格納されるのは、要素値そのものではありません。
See the Pen 20160804_for...in by r.shimizu (@r_shimizu) on CodePen.
上記のコードはサンプルの説明の便宜上、for...inループを利用して通常配列の内容を走査していますが
- コードがシンプルにならない
- コードによっては正しく動かないことがある
という理由から、一般的には通常配列の内容をfor...inループでは取り出すべきではありません。
例外処理
アプリを実行してると、「数値を受け取ることを想定した関数に文字列が渡された」などなど、想定しないことが起こることがあります。
もちろん未然に防げる場合と、そうでない場合があります。例えば外部要因に依存する処理がその例です。これを完全に防ぐことはなかなか大変です。
そんな時に、例外処理が役立ちます。
構文
try { 例外が発生するかもしれない命令(群) } catch { 例外が発生した場合の命令(群) } [finally{ 例外の有無に関わらず、最終的に実行される命令(群) }]