【问题标题】:Converting Fahrenheit to Celsius using while() loop PHP使用 while() 循环 PHP 将华氏温度转换为摄氏温度
【发布时间】:2017-11-17 01:21:02
【问题描述】:

我需要使用 while() 循环以 5 度的增量打印从 –50 华氏度到 50 华氏度的华氏温度和摄氏温度等效值表

要从华氏温度转换为摄氏温度,我需要从温度中减去 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>

【问题讨论】:

  • 你需要在循环内进行转换
  • 但转换工作正常。华氏度的原始列仍然在 50 位,为什么?
  • 华氏度的期望值是多少?
  • 在-50到50之间,相差5度

标签: php loops while-loop


【解决方案1】:

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

$fahrenheit = -50;

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

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

    $fahrenheit += 5;
} 

【讨论】:

    【解决方案2】:

    您的代码:

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

    该函数在哪里更可取,因为您可能希望在代码的其他地方进行此计算,而不必将其复制/粘贴到整个地方。

    【讨论】:

      【解决方案3】:

      @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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-08
        • 2021-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        相关资源
        最近更新 更多