【PHP/演習問題】switch文[2]

【PHP/演習問題】switch文[2]

問題

お会計の合計金額に会員ランクによって割引を適用するプログラムを作成してください。
なお、下記条件を満たすものとします。

  • 合計金額は『単価×個数』で計算する
  • 単価、個数、会員ランクはコマンドライン引数で与える(単価、個数、会員ランクの順)
  • 会員ランクはGold、Silver、Bronze、Normalの3種類
  • 割引の条件
    Gold 20%OFF
    Silver 10%OFF
    Bronze 5%OFF
    Normal なし
  • 条件分岐はswitch文を使用する
$ php practice.php 1350 7 Gold
割引率           : 20%
割引金額         : 1890円
合計金額(割引前) : 9450円
合計金額(割引後) : 7560円
$ php practice.php 1350 7 Silver
割引率           : 10%
割引金額         : 945円
合計金額(割引前) : 9450円
合計金額(割引後) : 8505円
$ php practice.php 1350 7 Normal
割引率           : 0%
割引金額         : 0円
合計金額(割引前) : 9450円
合計金額(割引後) : 9450円

解答例

<?php

$price = $argv[1];
$unit = $argv[2];
$member_rank = $argv[3];

$total = $price * $unit;
$subtotal = $total;
$discount = 0;
$discount_rate = 0;

switch( $member_rank ) {
    case 'Gold' :
        $discount_rate = 0.2;
        break;
    case 'Silver' :
        $discount_rate = 0.1;
        break;
    case 'Bronze' :
        $discount_rate = 0.05;
        break;
    default :
        $discount_rate = 0;
}

$discount = $subtotal * $discount_rate;
$total = $subtotal - $discount;

echo '割引率           : '.($discount_rate * 100)."%\n";
echo '割引金額         : '.$discount."円\n";
echo '合計金額(割引前) : '.$subtotal."円\n";
echo '合計金額(割引後) : '.$total."円\n";

?>