如何在另一个IF语句中使用IF语句来解决复杂的计算

时间:2013-09-14 16:14:46

标签: php if-statement logic

问题来自http://www.programmr.com/node/137861/begin 你可以在那里测试一下。

我正在编写一个程序,它使用嵌套的if和复合条件的组合显示一个人的适当名称。询问用户性别,名字,姓氏和年龄。

如果该人是女性,20岁或以上,请询问她是否已婚。如果是这样,请显示“Mrs.”在她的名字前面。如果没有,显示“女士”在她的名字前面。如果女性未满20岁,请显示她的名字和姓氏。

如果此人是男性且20岁或以上,则显示“先生”在他的名字前面。否则,显示他的名字和姓氏。

请注意,询问某人是否已婚,只应在女性为20岁或以上的情况下进行。

这是我的代码:

<?php
$finalName;
echo "What is your Gender (M or F):";
$gender = trim(fgets(STDIN));
echo "First Name:";
$firstName = trim(fgets(STDIN));
echo "Last Name:";
$lastName = trim(fgets(STDIN));
echo "Age:";
$age = trim(fgets(STDIN));

if ($gender == "M" and $age>19) {
    $finalName = "Mr. ".$lastName;
}

if ($age<20) {
    $finalName = $firstName.$lastName;
}

if ($gender == "F" and $age>19) {
    echo "Are you married:";
    $married = trim(fgets(STDIN));

    if ($married == "Y") {
        $finalName = "Mrs. ".$lastName;
    }
    else {
        $finalName = "Ms. ".$lastName;
    }
}

echo "Then I will call you ".$finalName;
exit;
?>

代码没有给出预期的输出。逻辑中是否存在错误,或者if语句是否以这种方式工作?

1 个答案:

答案 0 :(得分:1)

最后这是有效的。我在if语句中替换了= with ==。

我还将“和”替换为“&amp;&amp;”在if语句中,它就像一个魅力。

     if ($gender == "M" && $age>19) {
    $finalName = "Mr. ".$lastName;
}

if ($age<20) {
    $finalName = $firstName." ".$lastName;
}

if ($gender == "F" && $age>19) {
    echo "Are you married:";
    $married = trim(fgets(STDIN));

    if ($married == "Y") {
        $finalName = ("Mrs. ".$lastName);
    }
    else {
        $finalName = ("Ms. ".$lastName);
    }
}