変数の定義についてはこちらの記事を参照ください。
演算子についてはこちらの記事を参照ください。
プログラミングは条件分岐を行いながら組み立てるものです。
例えば、
- Aボタンを押したらこの処理。
- チェックに入力があればこの処理。
- 入力された年齢が18以上ならこの処理。
こういった条件分岐を行う上で必要になってくるのが、if や for などの構文です。
これでにより、条件で処理を分けたり、同じ処理を指定した回数ループしたり出来ます。
これもJavaScript特有のものでなく、多少書き方は変わりますが他の言語でも同じようなことが出来ます。
if文による条件分岐
if文は条件を分岐するための構文です。
実際にコーディングするときにもかなり使います。
1 2 3 4 |
var age = 20; if (age >= 20) { alert('成人です。'); } |
上の例は、age(年齢)が20以上だったら「成人です。」というメッセージを表示するコードです。
1行目の var age = 20; は直接20という数値を代入していますが、画面で入力した値をセットしたりして使います。
if は「~だったら」という条件分岐ですが、「~だったら。そうでなかったら」の「そうでなかったら」の部分も書くことが出来ます。
1 2 3 4 5 6 |
var age = 20; if (age >= 20) { alert('成人です。'); } else { alert('成人ではありません。'); } |
このように else を使うことで、条件に当てはまらなかった場合の処理を記述出来ます。
例では、20以上でなかったら「成人ではありません。」というメッセージを表示するコードです。
そして、else if という分岐もあり、これは「Aだったら。Aで無くBだったら。AでもBでもなかったら」の「Aで無くBだったら。」の部分を書くことが出来ます。
1 2 3 4 5 6 7 8 |
var age = 20; if (age >= 20) { alert('成人です。'); } else if (age >= 18) { alert('成人ではありませんが、車の免許はとれます。'); } else { alert('成人ではありません。'); } |
このように書くことで、「成人では無いが、18歳以上なら」という条件分岐が出来ます。
for文による処理のループ
for文はループ処理に使います。
次にwhile文を紹介しますが、僕はfor文のほうが好きです。
例えば下のコードだと、i が 0 から 19 (20未満)になるまでループします。
1 2 3 4 |
var age = 20; for (var i = 0; i < age; i++) { alert(i); } |
for (初期化; 条件; 変化;) と記載します。
初期化は、ループをカウントする変数を定義するのが一般的です。
ここで定義した変数はその for 文内でしか使えません。
条件は、どこまでループするのかを定義します。
この条件が満たされればループは終了します。逆に満たされなければ無限にループし続けます。
変化は、1回ループが完了する毎に実行されます。
for文には continue と break というものがあります。
continue
continueは、ループ内の処理を、そのループに限り終了させ、変化; を実行した後次のループ処理にはいります。
1 2 3 4 5 6 7 |
var age = 20; for (var i = 0; i < age; i++) { if (i == 5) { continue; } alert(i); } |
上の例だと、i が 5 のときだけ i の値を表示せず、ループを続行することになります。
break
breakは、そのループ自体を終了し、次の処理に移ります。
1 2 3 4 5 6 7 |
var age = 20; for (var i = 0; i < age; i++) { if (i == 5) { break; } alert(i); } |
上の例だと、i が 5 になったときにループを終了します。
alert(i); は、0, 1, 2, 3, 4 を出力し、5で break して6以降は処理しません。
上の例は、こんな書き方はしないよく無い例ですが、例えばチームメンバーのリストの中からリーダーを探す処理をしたとき、メンバーを全てスープしつつ、役職がリーダーだったらbreak で終了するような感じで使います。
while文による処理のループ
先ほど説明した for 文と同様にループ処理を行うための構文です。
どちらが軽いとかあまり意識しないで大丈夫です。
上の for 文と同様のことを while 文で書くと下のコードのようになります。
1 2 3 4 5 6 |
var age = 20; var i = 0; while (i < age) { alert(i); i++; } |
while 文には do while という書き方もあり、上の例と同じようなものは下のコードのように書きます。
1 2 3 4 5 6 |
var age = 20; var i = 0; do { alert(i); i++; } while (i < 10); |
何が違うのかと言うと、先に1度ループ内の処理をして、条件を満たしていれば次のループもするところです。
上のほうのコードの場合は、age が 0 の場合は1度もループ内処理をすることはありません。
while文にも continue と break があります。
continue と break の動きは for 文のときと同じです。
switch文による条件分岐
switdh文はif文のように値によって条件分岐できる構文です。
僕はあまり使いませんが。
1 2 3 4 5 6 7 8 9 10 11 |
var age = 20; switch (age) { case 20: alert('成人しました。'); case 18: alert('車の免許がとれるようになりました。'); break; default: alert('その他'); break; } |
上のコードのように case で指定した変数内の値が何かを指定し、一致すればその後の処理が行われます。
default は、どの case にも当てはまらなかった場合に実行されます。
上の例をご覧頂くと case 20: の中には break がありません。
case 18: の中には break があります。
これは例えば age の値が20だった場合には、case 20 を実行した後 case 18 も実行することになります。
このように break を処理するまで、次の条件の処理も行うところが if 文との違いかと思います。
しかし、実際の現場ではあまり使われません。
バグが出やすいからだと思います。
僕が昔携わっていた300人規模のプロジェクトでは switdh 文は禁止でした。
まとめ
基本的には条件分岐とループがあることが分かればよいです。
書き方はG先生に聞けばたくさんサンプルが出てきます。
while文はまだ使うとしても switdh文はほぼ見かけません。
ifとforを知っていれば問題なくプログラミングは出来ます。
コメントを残す