トラック
/
JavaScript
JavaScript
/
演習
/
乗り物の購入
乗り物の購入

乗り物の購入

学習演習

はじめに

比較

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台を選ぶのを手伝うもの、中古車の妥当な価格を見積もるものです。

1. 運転免許が必要かどうかを判断する

車両の種類によっては、運転するために運転免許が必要です。 'car'と'truck'の2種類だけが免許を必要とし、それ以外は免許なしで運転できるものとします。

車両の種類を受け取り、その種類に免許が必要かどうかを示す真偽値を返すneedsLicense(kind)関数を実装します。

needsLicense('car');
// => true

needsLicense('bike');
// => false

2. 購入する2台の候補から1台を選ぶ

購入できる車の候補を検討します。 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. 中古車の価格の見積もりを計算する

判断がついたので、次はディーラーで適正な価格で買えるようにしたいところです。 中古車の購入を考えているので、価格は車がどれくらい古いかによって変わります。 おおまかな見積もりとして、車が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
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
JavaScript Exercism

乗り物の購入を始める準備はできましたか?

Exercismに登録すれば、37個のコンセプト159個の演習、そして本物の人間によるメンタリングとともに、JavaScriptを学んでマスターできます。すべて無料です。