使用while()循环PHP将华氏温度转换为摄氏温度

时间:2017-11-17 01:21:03

标签: php loops while-loop

enter image description here我需要使用while()循环打印华氏温度和摄氏温度当量表,从-50华氏度到50华氏度,以5度为增量

要从华氏温度转换为摄氏温度,我需要从温度中减去32,乘以5,然后除以9

看起来转换有效,但华氏温度列保持不变

这里的问题是什么?

<html>
<head>
    <meta charset="UTF-8">
    <title>Unit 3 part 2</title>
</head>
<body>

    <?php
        $min_fahr = -50;
        $max_fahr = 50;
        $celsius = ($max_fahr - 32) * 5 / 9;
    ?>

    <table border="1" cellpadding="3">

        <thead>
            <td>Fahrenheit</td>
            <td>Celsius</td>
        </thead>

        <?php
        while ($min_fahr <= $max_fahr) {

            print "<tr><td>$max_fahr</td><td>$celsius</td></tr>";

            $min_fahr += 5;
            $celsius -= 5;

        } ?>

    </table>

</body>
</html>

3 个答案:

答案 0 :(得分:0)

您需要将计算放在循环中,并打印出您实际修改的值:

$fahrenheit = -50;

while ($fahrenheit <= 50) {
    $celsius = ($fahrenheit - 32) / 9 * 5;

    print "<tr><td>$fahrenheit</td><td>$celsius</td></tr>";

    $fahrenheit += 5;
} 

答案 1 :(得分:0)

您的代码:

$celsius = ($max_fahr - 32) * 5 / 9;

计算完全一次。如果您想多次进行计算,则需要将该代码移动到循环中:

while( ... ) {
  $celsius = ($some_value - 32) * 5 / 9;
  ...
}

或定义您在循环中调用的函数:

function F_to_C($deg_f) {
  return ($deg_f - 32) * 5 / 9;
}

while( ... ) {
  $celsius = F_to_C($some_value);
  ...
}

该函数更可取,因为您可能希望在代码中的其他位置执行此计算,而无需在整个位置复制/粘贴它。

答案 2 :(得分:0)

@RobbyCornelissen 谢谢,这段代码完美无缺

<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <table border="1" cellpadding="3">

        <thead>
            <td>Fahrenheit</td>
            <td>Celsius</td>
        </thead>

        <?php
        $fahrenheit = 50;

        while ($fahrenheit >= -50) {

            $celsius = ($fahrenheit - 32) * 5 / 9;

            print "<tr><td>$fahrenheit</td><td>$celsius</td></tr>";

            $fahrenheit -= 5;
            $celsius -= 5;

        } ?>

    </table>

</body>
</html>