Menu
CoddyTech

回顾:简单逻辑

本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 27 课,共 71 课。

challenge icon

挑战

简单

从输入中读取 5 个值:一个整数 age,一个整数 balance,一个字符串 isStudent(值为 "true" 或 "false"),一个字符串 hasPromoCode(值为 "true" 或 "false"),以及一个整数 itemPrice。

将字符串值与 "true" 比较,从而把它们转换为布尔值。

计算以下 3 个条件,并使用 var_dump() 输出每个条件的结果,每个结果各占一行:

  1. 检查这个人是否符合青年折扣条件:age 小于 25 并且 是学生
  2. 检查这个人是否能以折扣价买得起该商品:balance 大于或等于 itemPrice 或者(balance 至少是 itemPrice 的一半 并且 hasPromoCode 为 true)
  3. 检查这个人是否可以优先结账:(age 至少为 65 或者 isStudent 为 true)并且 balance 大于 0 并且 不是 hasPromoCode

示例:

如果输入为 22、50、true、false 和 80,输出应为:

bool(true)
bool(false)
bool(true)

说明:

  • age < 25 && isStudent → 22 < 25 && true → true
  • balance >= itemPrice || (balance >= itemPrice / 2 && hasPromoCode) → 50 >= 80 || (50 >= 40 && false) → false || false → false
  • (age >= 65 || isStudent) && balance > 0 && !hasPromoCode → (false || true) && true && true → true

亲手试试

<?php
// 读取输入值
$age = intval(fgets(STDIN));
$balance = intval(fgets(STDIN));
$isStudentStr = trim(fgets(STDIN));
$hasPromoCodeStr = trim(fgets(STDIN));
$itemPrice = intval(fgets(STDIN));

// 将字符串值转换为布尔值
$isStudent = $isStudentStr === "true";
$hasPromoCode = $hasPromoCodeStr === "true";

// TODO: 在下方编写你的代码
// 1. 检查此人是否符合青年折扣条件

// 2. 检查此人打折后是否买得起该商品

// 3. 检查此人是否享有优先结账资格

?>

基础知识中的所有课

自己练习: PHP 在线编译器