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


how to use IF statement inside another IF statement to solve complicated calculation

这个问题取自 http://www.programmr.com/node/137861/begin你可以在那里测试它。

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

如果此人是女性且年龄在 20 岁或以上,请询问她是否已婚。如果是这样,请在她的名字前面显示"夫人"。如果没有,请在她的名字前面显示"女士"。如果女性未满 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 语句不是这样工作的?

最后,

这就是有效的方法。我在 if 语句中用 == 替换了 =。

我还在 if 语句中将"and"替换为"&&",它就像一个魅力。

     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);
    }
}