比較演算子
今回も 表にまとめました。比較演算子を使った式は その式が正しい(成り立つ)場合には true 、正しくない(成り立たない)場合には false の値をそれぞれ返します。この値を画面に表示させて、練習しながら慣れていこうと思います。(表の中の「…」の箇所は「等しくない場合 false」を省略しています)
a == b
a と b が等しい場合に true 、等しくない場合に false を返します。まだ書き方に慣れていなくてつい、 イコールをひとつだけにしてしまうのですが、ひとつだと代入の意味になってしまいます。
var b = 5;
var c = true;
var d = 1;
var e = 0;
var f = false;
document.write(a == b, '<br>', c == d, '<br>', e == f);
var a = true;
var b = 1;
var c = 0;
var d = false;
document.write(a + b, '<br>', c + d);
var a = 5;
var b = 5;
var c = true;
var d = 1;
var e = 0;
var f = false;
document.write(a != b, '<br>', c != d, '<br>', e != f);
== のときと条件が逆なので、結果も逆になっています。
var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a > b, '<br>', c > d);
var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a < b, '<br>', c < d);
var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a >= b, '<br>', c >= d);
a == b 、改行タグ 、c == d 、改行タグ 、e == f の順に表示しています。5と 5 が true なのはすぐ判りますが、true と 1 、false と 0 にも true が返っています。これは、true と 1 、false と 0 はそれぞれデータ型は違っても、プログラム上では同じ意味として扱われているからです。それでは ついでに、比較演算子ではないですがこんな事を試してみます。
var b = 1;
var c = 0;
var d = false;
document.write(a + b, '<br>', c + d);
a + b, c + d の実行結果 |
同じ意味に扱われているのなら 足し算してみました。結果は上の通りです。同じ意味に扱われているものなので、計算に使うと 自動でデータ型が数値型に変換されて、このような結果が返るわけです。
a != b
a と b が等しくない場合に true 、等しい場合に false を返します。a == b を逆転させた条件です。
var a = 5;
var b = 5;
var c = true;
var d = 1;
var e = 0;
var f = false;
document.write(a != b, '<br>', c != d, '<br>', e != f);
== のときと条件が逆なので、結果も逆になっています。
a > b
a が b よりも大きければ true 、大きくなければ false を返します。
var b = 5;
var c = 3;
var d = 1;
document.write(a > b, '<br>', c > d);
> の実行結果 |
> には、 同じ数は含まれませんので 5 > 5 は false になります。
a < b
a が b よりも小さければ true 、小さくなければ false を返します。
var b = 5;
var c = 3;
var d = 1;
document.write(a < b, '<br>', c < d);
< の実行結果 |
さっきと同じく < にも同じ数は含まれません。
a >= b
a が b と同じか大きい場合に true 、a が b より小さい場合に false を返します。この条件は 数学等でいう「以上」と同じです。
var b = 5;
var c = 3;
var d = 1;
document.write(a >= b, '<br>', c >= d);
>= の実行結果 |
>= には 同じ数も含まれますので、true が返っています。あと、この比較をする時に、つい=> こう書いてしまう事があって 同じようなものかと思いますが、エラーになります。
a<= b
a が b と同じか小さい場合に true 、a が b より大きい場合に false を返します。この条件は 数学等でいう「以下」と同じです。
var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a <= b, '<br>', c <= d);
<= の実行結果 |
<= には 同じ数も含まれますので、true が返っています。これもさっきと同じで、=< こう書いてしまうと エラーになります。
a === b
a と b がデータ型まで含めて等しい場合に true 、データ型まで含めて等しくない場合に false を返します。
var a = 5;
var b = 5;
var c = true;
var d = 1;
var b = 5;
var c = true;
var d = 1;
var e = 0;
var f = '0';
document.write(a === b, '<br>', c === d, '<br>', e === f);
=== の実行結果 |
一番最初に試した == よりも より厳密に データ型まで含めて同じかどうかを 判定します。
== のときは true と 1 には true が返っていましたが、今回は false が返っています。
また、0 と '0' も数値型と文字列型 で違うので、false が返っています。
少し長くなりましたが、以上で 比較演算子は 一通り試しました。これは制御文の 条件によく使うものなので、次回はやっと制御文について (なるべく間を空けないうちに)まとめようと思います。
0 件のコメント:
コメントを投稿