プログラムの流れを変える命令を制御構造と呼びます。制御構造の代用が条件判断や繰り返しと言われるものです。今回は、if文と呼ばれるステートメントを使用した条件分岐について書いていきます。「if」は日本語では「もし~」という意味ですが、ある条件を満たした場合にのみ、次の処理を行うこともできます。「もし~なら、~を行う」と考えると分かりやすいと思います。
サンプルコードだと、実行するとまず、点数は?と聞かれます。入力した点数が70点超えると「合格」と表示され70点以下だと「不合格」と表示されます。
if文にelseを加えてif elseとすると「もし~ならば~を行う。そうでない場合は、~を実行する」といった処理を記述できます
if文の書式
書き方は以下の通りです。
if(条件式){
ステートメント1;
ステートメント2;
ステートメント3;
**省略**
}
if文の後の括弧「()」に、条件式と呼ばれる式を記述して、その条件を満たした場合に、その後ろの波括弧「{}」内に記述したステートメントが順に実行されます。
条件式とブール値
条件式は、条件を満たしているかを判断する式です。条件式が成り立つならtrue,条件式が成り立たないならfalseという値を戻します。trueとfalseは、それぞれ真(正しい),偽(正しくない)の、いずれかの状態を表す値です。これまでの記事で出てきた数値や文字列とは異なる種類のデータ型で、ブール値又は真偽値と呼ばれます。
実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>ifelse文</title> </head> <body> <script> //点数を格納 var score; //合格点 var pass = 70; //点数を入力する score = prompt("点数は?") //入力した点数が合格点を超えているか判定 if( score > pass ){ //合格点超 document.write("合格"); }else{ //合格点以下 document.write("不合格"); } </script> </body> </html> |
サンプルコードでは、、if( score > pass ) という条件式を書きました。ここで使用した 「>」は「~より大きい」という意味です。変数scoreが変数passより大きい場合、true、真となりステートメントが実行されます。
処理をまとめるブロック
波括弧「{}」で囲まれた範囲のことをブロックと呼びます。処理をまとめるために使用します。ifやelseの後の処理が1つだけの場合は、ブロックにしなくても大丈夫です。
ステートメントが一つの場合
if( score > pass )document.write("合格"); という感じです。
条件式に使用する比較演算子
演算子色 | 実例 | 説明とか |
---|---|---|
== | a==b | aとbが等しければtrue,そうじゃないならfalse |
!= | a!=b | aとbが等しくないならtrue,そうじゃないならfalse |
< | a < b | aがbより小さいならtrue,そうじゃないならfalse |
<= | a <= b | aがb以下ならtrue,そうじゃないならfalse |
> | a < b | aがbより大きいならtrue,そうじゃないならfalse |
>= | a <= b | aがb以上ならtrue,そうじゃないならfalse |
インデント
if文などのブロックの中のステートメントあ、通常のプログラムより字下げすると、プログラムの構造が分かりやすくなります。字下げすることをインデントとも言います。私の場合は、タブキーで余白を作っています。