計算の演算子と論理演算子
算術演算子
数の計算に用いる演算子を算術演算子といい、複合代入演算子には、次のようなものがあります。
演算子 | 読み仮名 | 働き | 使い方 | 結果 |
---|---|---|---|---|
+ | プラス | +(足す) | a = 5 + 5 | 10 |
- | マイナス | −(引く) | a = 5 - 5 | 0 |
* | アスタリスク | ×(かける) | a = 5 * 5 | 25 |
/ | スラッシュ | ÷(割る) | a = 5 / 5 | 1 |
% | パーセント | …(余り) | a = 5 % 5 | 0 |
a = 5 / 0のとき、結果は Infinity(無限)、
a = 5 % 0のとき、結果は NaN(非数)になります。
代入演算子
変数に値を代入する代入代入演算子「=」は左辺を変数、右辺を値とみなします。
a = a + 2;
「aがa+2と等しい」という意味ではありません。
aの値を2増やすことは、以下のように書くこともできます。
a += 2;
このように「+」「=」を組み合わせたものを複合代入演算子といいます。
複合代入演算子には、次のようなものがあります。
演算子 | 働き | 使い方 | 結果 |
---|---|---|---|
+= | 足して代入 | a = 5; a += 5; | 10 |
-= | 引いて代入 | a = 5; a -= 5; | 0 |
*= | かけて代入 | a = 5; a *= 5; | 25 |
/= | 割って代入 | a = 5; a /= 5; | 1 |
%= | 余りを代入 | a = 5; a %= 5; | 0 |
「a++」と「++a」の違い
インクリメント演算子とデクリメント演算子には、それぞれ2種類の書き方があり、「++a(--a)」を前置、a++(a--)を後置といいます。
前置と後置では演算を行うタイミングが異なります。
前置(++aと--a)
変数の参照より先に演算を行います。
a = 1;
x = ++a;
a に 1 を足した後、x に値を代入する → x の値は 2 になる
後置(a++とa--)
変数の参照より後に演算を行います。
a = 1;
x = a++;
x に値を代入した後、a に 1 を足す → x の値は 1 になる
論理演算子とは
論理演算子を使うことにより、より複雑な条件を表すことができます。
論理演算子には、おもに次のようなものがあります。
演算子 | 働き | 使い方 | 意味 |
---|---|---|---|
&& | かつ | (a >= 10) && (a < 50) | aは10以上かつ50未満 |
|| | または | (a == 1) || (a ==100) | aは1または100 |
! | 〜ではない | !(a == 100) | aは100ではない |
条件A、Bがあるとき、論理演算子の働きを図で示すと以下のようになります。
複雑な条件式
各演算子は優先度に従って処理されますが、意図的に関係をはっきりさせたいときは( )を使います。
aは50以上100未満である
(50 <= a) && (a < 100)
50 <= a < 100とは書けません。
条件付き実行
<script> var a = 4; (a < 10) || ( document.write( 'aは10以上' ) ); (a < 10) && ( document.write( 'aは10未満' ) ); </script>
- 「||」のとき条件式はtrueのため、処理はおこなわれません。
- 「&&」のとき条件式はtrueのため、処理が実行されます。
三項演算子
- 条件式の結果によって値や処理を選択する
条件式 ? 式1 : 式2
- 条件式には論理値または論理値に変換可能な値を記述します。
- 条件式の値がtrueだった場合に式1を評価した結果を返し、falseだった場合に式2を評価した結果を返します。
<script> var a = 4; var ans; ans ? (a < 10) || ( document.write( 'aは10以上' ) ) : (a < 10) && ( document.write( 'aは10未満' ) ); </script>