四則演算
このレッスンで分かること
- かけ算は
*、わり算は/と書きます- 年と月のように単位の違う値は、そろえてから計算します
記号が算数と 2 つだけ違う
JavaScript の計算は算数とほぼ同じです。違うのは記号 2 つで、かけ算は × ではなくアスタリスク *、わり算は ÷ ではなくスラッシュ / を使います。
JavaScript
console.log(3 + 5);
// => 8
console.log(10 - 4);
// => 6
console.log(3 * 5);
// => 15
console.log(20 / 4);
// => 5| 演算子 | 名前 | 例 | 結果 |
|---|---|---|---|
+ | 加算 | 3 + 5 | 8 |
- | 減算 | 10 - 4 | 6 |
* | 乗算 | 3 * 5 | 15 |
/ | 除算 | 7 / 2 | 3.5 |
わり算は、割り切れなくても小数のまま返ります。他の言語のように勝手に切り捨てられることはありません。
プロフィールサイトに置き換えてみます。作品が 3 つ、それぞれの閲覧数が 120 回だとしたら、合計はこう書けます。
JavaScript
console.log(3 * 120);
// => 360年と月は、そのままでは引けない
「いま 2 年 3 ヶ月」から「目標の 5 年」までの残りを出したいとします。2 と 3 と 5 をどう並べても答えは出ません。年と月という違う単位が混ざっているからです。
計算の前に、単位をそろえます。年を 12 倍すれば月になるので、どちらも月数に直してしまえば、あとは引き算だけで済みます。
JavaScript
console.log(2 * 12 + 3);
// => 27* は + より先に計算されるので、この式は 24 に 3 を足した 27 になります。2 年 3 ヶ月は 27 ヶ月です。目標の 5 年も同じように 60 ヶ月に直しておけば、残りは引き算で求まります。
単位をそろえるのは計算の基本です。金額なら円、時間なら分というように、いちばん小さい単位に寄せてから計算し、人に見せるときだけ読みやすい形に戻します。
引いた結果がマイナスになってもよい
目標をすでに過ぎている場合、残りはマイナスになります。JavaScript はマイナスの数もそのまま扱えるので、エラーにはなりません。
JavaScript
console.log(24 - 30);
// => -6-6 は「目標を 6 ヶ月分すでに超えている」という意味です。0 に丸めたくなるかもしれませんが、今回はそのまま返します。値をありのまま返しておくほうが、あとで表示のしかたを選べるからです。
よくある間違い
- 単位をそろえずに引く — 年と月をそのまま引いても、数としては計算できてしまいます。エラーが出ないぶん間違いに気づけないので、引く前に両方を同じ単位に直したか確かめてください
要件
- 関数名は
monthsToGoal、引数はyearsmonthsgoalYearsの 3 つ (すべて数値) - 戻り値は数値で
goalYears * 12 - (years * 12 + months) - かけ算
*、足し算+、引き算-を使うこと - 目標を過ぎている場合はマイナスの値をそのまま返すこと
入出力例
monthsToGoal(1, 6, 3) → 18
monthsToGoal(0, 0, 1) → 12
monthsToGoal(2, 0, 2) → 0
monthsToGoal(3, 0, 2) → -12
monthsToGoal(0, 7, 1) → 5ヒント
編集 ゆめさく編集部