JavaScript | 算術演算子

JavaScript JavaScript
スポンサーリンク

以下は プログラミング初心者 向けに「算術演算子」を噛み砕いて、実際に試せる例題+解説+練習問題(解答付き)までまとめた説明です。

算術演算子って何?(超かんたん説明)

算術演算子は、プログラムで「足す・引く・掛ける・割る」などの 数の計算 をするための記号です。電卓のボタンに相当します。主に次のものを覚えればOK:

+(足し算) -(引き算) *(掛け算) /(割り算) %(余り) **(べき乗)
さらに「インクリメント/デクリメント」や「単項プラス・マイナス」もよく使います: ++ -- +value -value


基本操作と例

1) 加算 +

console.log(10 + 5); // 15
JavaScript

注意:片方が文字列だと 連結 になります。

console.log("10" + 5); // "105"  ← 数学的な 15 にはならない
JavaScript

2) 減算 -

console.log(10 - 5); // 5
JavaScript

3) 乗算 *

console.log(10 * 5); // 50
JavaScript

4) 除算 /

console.log(10 / 2); // 5
console.log(10 / 3); // 3.3333333333333335  (小数になる)
JavaScript

0で割ると Infinity または -Infinity(0で割った数の符号による)になるので注意。

5) 剰余(余り) %

console.log(10 % 3); // 1  (10 ÷ 3 の余り)
JavaScript

よく「偶数か奇数か」を判定するのに使います:

console.log(6 % 2 === 0); // true  (6は偶数)
JavaScript

6) べき乗 **

console.log(2 ** 3); // 8  (2の3乗)
JavaScript

7) 単項プラス/マイナス(+value / -value)

+value は値を数として扱う(強制変換)、-value は符号を反転します。

console.log(+"42"); // 42  ("42" を数に変換)
console.log(-5);    // -5
JavaScript

8) インクリメント / デクリメント ++ / --

let a = 5;
a++;      // a は 6 になる(後置)
++a;      // a は 7 になる(前置)
JavaScript

前置 (++a) と後置 (a++) の違いは「式が値を返すタイミング(増える前 or 増えた後)」です。


演算の優先順位(どっちが先に計算される?)

数学と同じで */+- より先に計算されます。括弧 () を使うと優先順位を変えられます。

console.log(2 + 3 * 4);   // 14 (3*4が先)
console.log((2 + 3) * 4); // 20 (括弧で先に2+3)
JavaScript

小数(浮動小数点)の注意点 — 重要!

JavaScriptでは数は内部的に浮動小数点(小数)で扱われます。これにより 見た目通りに計算できないことがある のが最大の注意点。

例:

console.log(0.1 + 0.2); // 0.30000000000000004
JavaScript

「0.1 と 0.2 を足すと 0.3 のはず…」ですが、小さな誤差が出ます。対策の例:

  • 表示上丸める(例:小数第2位まで表示):
console.log((0.1 + 0.2).toFixed(2)); // "0.30"(文字列)
console.log(Number((0.1 + 0.2).toFixed(2))); // 0.3(数値に戻す)
JavaScript
  • 整数に変換して計算する(例:金額を「円」ではなく「銭」単位で扱う、など):
const a = Math.round(0.1 * 100); // 10
const b = Math.round(0.2 * 100); // 20
console.log((a + b) / 100);      // 0.3
JavaScript

ちょっと便利な使い方(実用例)

偶数・奇数チェック

function isEven(n){ return n % 2 === 0; }
console.log(isEven(7)); // false
JavaScript

桁数を丸める(小数第2位で丸め)

function round2(x){ return Math.round(x * 100) / 100; }
console.log(round2(3.14159)); // 3.14
JavaScript

絶対値

console.log(Math.abs(-12)); // 12
JavaScript

例題

以下は初心者向けの例題と解説です。実際にコードを打ち替えて動かしてみてください。

例題1:合計と平均

const a = 78, b = 92, c = 85;
const sum = a + b + c;
const avg = sum / 3;
console.log("合計:", sum); // 255
console.log("平均:", avg);  // 85
JavaScript

説明:+で合計を作り、その合計を 3 で割って平均を出しています。

例題2:消費税を加えた価格(丸めあり)

const price = 1200;
const taxRate = 0.10;
const priceWithTax = price * (1 + taxRate);
console.log(priceWithTax); // 1320
JavaScript

小数誤差が不安なら Math.roundtoFixed を使う。

例題3:割り算の余りを使う(曜日を計算する)

  • ある日から 10 日後は何曜日か?(日曜を 0 とする)
const today = 2; // 火曜を 2 とする例(0=日, 1=月, 2=火...)
const daysLater = 10;
const weekday = (today + daysLater) % 7;
console.log(weekday); // (2 + 10) % 7 = 5 -> 金曜
JavaScript

例題4:べき乗を使う(2の5乗)

console.log(2 ** 5); // 32
JavaScript

練習問題

下に 演習問題 と解答を用意します。まずは自分で考えてから答えを見てください。

問題1

a = 15, b = 4 のとき、a / ba % b の値は何ですか?

問題2

0.1 + 0.2 をそのままコンソールに出すと 0.30000000000000004 になります。これを 0.3 と表示したいとき、toFixed を使って表示してください(コードで答える)。

問題3

n が与えられたとき、n が偶数なら "Even", 奇数なら "Odd" を返す関数を作ってください。

問題4

次の式の値を求めよ(括弧の優先を正しく処理すること):
2 + 3 * 4 - (6 / 2)


練習問題の解答(ここまで考えてから見る)

解答1

a = 15, b = 4
a / b = 3.75
a % b = 15 % 4 = 3(15 ÷ 4 = 3 余り 3)

解答2

console.log((0.1 + 0.2).toFixed(1)); // "0.3" (文字列)
console.log(Number((0.1 + 0.2).toFixed(1))); // 0.3 (数値)
JavaScript

解答3

function evenOdd(n){
  return (n % 2 === 0) ? "Even" : "Odd";
}
console.log(evenOdd(7)); // "Odd"
console.log(evenOdd(8)); // "Even"
JavaScript

解答4

計算順:

  • 3 * 4 = 12
  • 6 / 2 = 3
  • 2 + 12 - 3 = 11
    したがって答えは 11

(コードで確かめる)

console.log(2 + 3 * 4 - (6 / 2)); // 11
JavaScript

よくあるミスと対処法

  • + を使って文字列と数字を混ぜると 連結 になる:"3" + 2"32"。数にしたければ Number("3") + 2+"3" + 2 を使う。
  • 小数の丸め誤差を放置する:金融など誤差が致命的な場合は整数単位で扱う(例:円なら「銭」で計算する)か、専用ライブラリを使う。
  • 0で割ると Infinity になる:必ず割る前に if (denominator === 0) … のチェックを入れる。

さらに学びたい人向け(次の一歩)

  • 浮動小数点の内部表現(IEEE754)の基礎を学ぶと「なぜ誤差が出るか」が深くわかります。
  • 金融アプリなどで精度が重要なら BigInt(整数が大きい場合)や外部の高精度演算ライブラリを検討。
  • 演算子の優先順位表(一覧)を手元に置くと式を読むのが速くなります。
タイトルとURLをコピーしました