我需要使用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>
答案 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>