計算の演算子と論理演算子

算術演算子

数の計算に用いる演算子を算術演算子といい、複合代入演算子には、次のようなものがあります。


演算子読み仮名働き使い方結果
+プラス+(足す)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

インクリメント演算子とデクリメント演算子

インクリメント(加算)演算子、デクリメント(減算)演算子は、
変数の数値を1つ増やしたり、1つ減らしたりする場合に使います。


演算子名称働き使い方結果
++インクリメント演算子変数の値を
1増やす
a = 1; ++a; 2
--デクリメント演算子変数の値を
1減らす
a = 1; a--; 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>