Hackerrank:使用PHP的类与实例解决方案(第4-30天的代码)
#编程 #php #hackerrank #hackaton

任务

写一个具有实例变量,年龄和构造函数的人类类,该构建器将整数, 作为参数。构造函数必须将初始> 分配给确认为初始> 的论点后的年龄不是负面;如果通过否定的论点为初始> ,则构造函数应将年龄设置为0,并且打印年龄无效,设置 age in。此外,您必须编写以下实例方法:

  1. YearPass()应将年龄实例变量增加1
  2. amiold()应执行以下条件动作:
  3. 如果年龄<13,打印你很年轻。
  4. 如果年龄> = 13且年龄<18,则打印你是一个少年。
  5. 否则,打印你是老的。
  6. 为了帮助您以身作则并完成此挑战,为您提供了许多代码,但您将来会写所有的代码。创建人类类的每个实例的代码在主要方法中。如果您还不了解这一切!
  7. 是否不用担心!

注意:请勿删除或更改编辑器中的存根代码。

解决方案


class Person {
    public $age;

    public function __construct($initialAge) {
        if ($initialAge < 0) {
            echo "Age is not valid, setting age to 0.\n";
            $this->age = 0;
        } else {
            $this->age = $initialAge;
        }
    }

    public function amIOld() {
        if ($this->age < 13) {
            echo "You are young.\n";
        } else if ($this->age >= 13 && $this->age < 18) {
            echo "You are a teenager.\n";
        } else {
            echo "You are old.\n";
        }
    }

    public function yearPasses() {
        $this->age += 1;
    }
}

$T = intval(fgets(STDIN));
for ($i = 0; $i < $T; $i++) {
    $age = intval(fgets(STDIN));
    $p = new Person($age);
    $p->amIOld();
    for ($j = 0; $j < 3; $j++) {
        $p->yearPasses();
    }
    $p->amIOld();
    echo "\n";
}

这是 30天代码的一部分 - 第4天