PHP(简单):循环问题

时间:2015-06-17 18:41:08

标签: php

我对编程非常陌生,我正在尝试创建一个从Celsius到Fahrenheit到Kelvin的转换器。用户输入他们想要在2个输入框中转换的值(以摄氏度为单位),并使用循环创建表。输出摄氏量的第一组数据看起来很棒但是第二个数据流(华氏度)只输出一个摄氏度值,这是摄氏循环中最终nuber的转换值。

<form name="calculator" action="" method="post">
    From: <input class="inputbox" type="number" name="one" value="" /><br />
                <p>to</p><br>
    To: <input class="inputbox" type="number" name="two" value="" /><br />
        <input type="submit" class="submit" name="submit" value="Get Conversions!" />
    </form>
    <br>

    <table border='1' cellpadding='5px'>
            <tr>
                <th>Degrees Celsius</th>

                <?php 
                    if ($_POST['submit']) {
                        $one = $_POST['one'];
                        $two = $_POST['two'];
                    }

                        if ($two < $one) {
                            echo "<p>Please put the lowest number in the first input box.</p>";
                        } else if ($one < (-273) OR $two < (-273)) {
                            echo "<p>   Tempature cant go below -273 Celsius (0 kelvin), please enter higher values.</p>";
                        } else {
                            $c = $one - 1;

                                do {
                                    $c++;
                                    echo "<td>" . $c . "</td>";
                                } while ($c < $two);
                        }

                ?>
            </tr>
            <tr>
                <th>Degrees Fahrenheit</th>

                <?php 

                    $f = (1.8 * $c) + 32;

                                do {
                                    $c++;
                                    echo "<td>" . $f . "</td>";
                                } while ($c < $two);

                                $k = $x - 273;
                ?>
            </tr>
    </table>

1 个答案:

答案 0 :(得分:1)

您的代码中有2个问题。

一个问题是你只分配c一次,当你运行第一次时,它计算C up然后当你到达第二次do {} while()它已经准备好了最多。

你应该&#34;重置&#34; C之后的第一个while循环:

<th>Degrees Fahrenheit</th>

                <?php 
  $c = $one - 1;

其次你只计算你的f变量一次,你应该为它做一个函数(在这种情况下可能有点过分)或者在while循环中移动你的f计算,你的代码的最后一部分就像是这个                 华氏度

            <?php 
                $c = $one - 1;
                            do {
                                $f = (1.8 * $c) + 32;
                                $c++;
                                echo "<td>" . $f . "</td>";
                            } while ($c < $two);

                            $k = $x - 273;
            ?>
        </tr>