JavaScriptでは、数値は次の関係演算子と等値演算子を使って比較できます。
| 比較 | 演算子 |
|---|---|
| より大きい | a > b |
| 以上 | a >= b |
| より小さい | a < b |
| 以下 | a <= b |
| (厳密に)等しい | a === b |
| (厳密に)等しくない | a !== b |
比較の結果は常に真偽値、つまりtrueかfalseになります。
1 < 3;
// => true
2 !== 2;
// => false
1 === 1.0;
// => true
// All numbers are floating-points, so this is different syntax for
// the exact same value.
JavaScriptでは、上記の比較演算子は文字列の比較にも使えます。 その場合は、辞書順(辞書式順序)で比較されます。 すべての文字の正確な順序の一覧はこちらにあります。
'Apple' > 'Pear';
// => false
'a' < 'above';
// => true
'a' === 'A';
// => false
JavaScriptで条件に応じて処理を実行する一般的な方法が、if文です。
これはifキーワード、丸括弧(())で囲まれた条件、波括弧({})で囲まれたブロックから構成されます。
ブロックが実行されるのは、条件がtrueと評価された場合だけです。
if (condition) {
// code that is executed if "condition" is true
}
単独で使うことも、elseキーワードと組み合わせて使うこともできます。
if (condition) {
// code that is executed if "condition" is true
} else {
// code that is executed otherwise
}
else文の中にさらに条件を入れ子にするには、else ifを使います。
if (condition1) {
// code that is executed if "condition1" is true
} else if (condition2) {
// code that is executed if "condition2" is true
// but "condition1" was false
} else {
// code that is executed otherwise
}
この演習では、車を買う準備を手伝うためのコードを書きます。
タスクは3つあります。運転免許が必要かどうかを判断するもの、2台の車から1台を選ぶのを手伝うもの、中古車の妥当な価格を見積もるものです。
車両の種類によっては、運転するために運転免許が必要です。
'car'と'truck'の2種類だけが免許を必要とし、それ以外は免許なしで運転できるものとします。
車両の種類を受け取り、その種類に免許が必要かどうかを示す真偽値を返すneedsLicense(kind)関数を実装します。
needsLicense('car');
// => true
needsLicense('bike');
// => false
購入できる車の候補を検討します。
2台まで絞り込めましたが、最終的な判断には助けが必要です。
そのために、2台の車を引数に取り、辞書順で先に来る方を含む判断を返すchooseVehicle(option1, option2)関数を実装します。
chooseVehicle('Wuling Hongguang', 'Toyota Corolla');
// => 'Toyota Corolla is clearly the better choice.'
chooseVehicle('Volkswagen Beetle', 'Volkswagen Golf');
// => 'Volkswagen Beetle is clearly the better choice.'
判断がついたので、次はディーラーで適正な価格で買えるようにしたいところです。 中古車の購入を考えているので、価格は車がどれくらい古いかによって変わります。 おおまかな見積もりとして、車が3年未満なら、新品だったときの元の価格の80%になるとします。 10年を超えると、50%になります。 車が3年以上10年以下なら、元の価格の70%になります。
if、else if、elseを使ってこのロジックを適用するcalculateResellPrice(originalPrice, age)関数を実装します(練習したいなら、他の書き方もあります)。
元の価格と車の年式を引数に取り、ディーラーでの見積もり価格を返します。
calculateResellPrice(1000, 1);
// => 800
calculateResellPrice(1000, 5);
// => 700
calculateResellPrice(1000, 15);
// => 500
Exercismに登録すれば、37個のコンセプト159個の演習、そして本物の人間によるメンタリングとともに、JavaScriptを学んでマスターできます。すべて無料です。