我正在尝试创建一个程序,该程序可以计算不同年龄和成员的折扣金额。 12岁以下的人可以享受50%的折扣,如果是会员,则可以享受10%的折扣。年龄在18岁以下或65岁以上的人可以享受25%的折扣,如果成为会员,则可以享受10%的额外折扣。 我的程序似乎只有在12岁以下时才有效,是否有人对如何解决有任何建议(对我来说,我是新手,所以很容易。)
$ticketPrice = 25;
$age = 25;
$membership = 'Yes';
$finalPrice;
$discount;
$memberDis;
if($age < 12) {
$finalPrice = 25 / 2;
} else if($age < 18) {
$discount = 25 * 0.25;
$finalPrice = 25 - $discount;
} else if($age < 65) {
$discount = 25 * 0.25;
$finalPrice = 25 - $discount;
} else if($membership = 'Yes') {
$discount = $finalPrice * .10;
$memberDis = $dicount * 100;
}
echo "<br />";
echo "<h1>Ticket Example</h1>";
echo 'Inital Ticket Price: '."£".$ticketPrice;
echo "<br />";
echo "Age: ".$age;
echo "<br />";
echo "Member: ".$membership;
echo "<br />";
echo "Final Ticket Price: "."£".$finalPrice;
答案 0 :(得分:0)
$ticketPrice
,而不是在if ..else
中对其值进行硬编码。$discount
。==
而不是=
。尝试
// Initialize discount to 0
$discount = 0;
$finalPrice = $ticketPrice;
if($age < 12) {
// if age is less than 12 then 50% discount
$discount = 50;
} elseif($age < 18 || $age > 65) {
// 25% discount for age < 18 or > 65
$discount = 25;
}
if ($membership == 'Yes') {
// additional 10% discount on membership
$discount += 10;
}
// now calculate the final price after removing discount
$finalPrice -= ($finalPrice*$discount/100);
答案 1 :(得分:0)
您可以看到代码的流程图表示,以便易于理解您在做什么以及为什么它不起作用。
虽然您应该看到=
,==
和===
运算符之间的差异,但是您可以看到,如果年龄大于或等于65岁,则将享受会员折扣。
根据您的代码结构,您应该具有:
<?php
$ticketPrice = 25;
$age = 25;
$membership = 'Yes';
$finalPrice;
$discount;
$memberDis;
if($age < 12) {
$finalPrice = 25 / 2;
} else if($age < 18) {
$discount = 25 * 0.25;
$finalPrice = 25 - $discount;
} else if($age < 65) {
$discount = 25 * 0.25;
$finalPrice = 25 - $discount;
}
if($membership === 'Yes') {
$discount = $finalPrice * .10;
$finalPrice -= $discount;
}
echo "<br />";
echo "<h1>Ticket Example</h1>";
echo 'Inital Ticket Price: '."£".$ticketPrice;
echo "<br />";
echo "Age: ".$age;
echo "<br />";
echo "Member: ".$membership;
echo "<br />";
echo "Final Ticket Price: "."£".$finalPrice;