Recap - Simple Logic
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 27/71。
チャレンジ
簡単入力から5つの値を取得してください:整数 age、整数 balance、文字列 isStudent("true" または "false" のいずれか)、文字列 hasPromoCode("true" または "false" のいずれか)、および整数 itemPrice。
文字列の値を "true" と比較してブール値に変換してください。
以下の3つの条件を評価し、それぞれの結果を var_dump() を使用して新しい行に印刷してください:
- その人が若者割引の資格があるかをチェック:age が 25 未満 かつ 学生である
- その人が割引付きでアイテムを購入できるかをチェック:balance が itemPrice 以上 または(balance が itemPrice の半分以上 かつ hasPromoCode が true)
- その人が優先チェックアウトを受けられるかをチェック:(age が 65 以上 または isStudent が true) かつ balance が 0 より大きい かつ not hasPromoCode
例:
入力が 22、50、true、false、および 80 の場合、出力は次のようになるはずです:
bool(true)
bool(false)
bool(true)説明:
age < 25 && isStudent→ 22 < 25 && true → truebalance >= 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. その人が優先チェックアウトを得るかをチェックする
?>基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators