繁体   English   中英

PHP if,else if,else逻辑

[英]PHP if, else if, else logic

我正在尝试制作一个BMI计算器...到目前为止,除了实际的BMI范围(下方,正常,上方)之外,我都能正常显示所有内容。

我的if / elseif语句很可能有问题,因为输出总是错误的。 这是我的代码:

<?php
    $weight = $_POST['txtWeight'];
    $height = $_POST['txtHeight'];

    $selected_unit = $_POST['optUnit'];

    $metric_status = 'unchecked';
    $imperial_status = 'unchecked';

    $impCalc = ($weight * 703) / ($height * $height);
    $metCalc = $weight / ($height * $height);
    $below = 'below average.';
    $normal = 'normal.';
    $above = 'above average.';

    if (($impCalc < 18.5) || ($metCalc < 18.5))
        {
         $bmi = $below;
        }

    elseif (($impCalc >= 18.5 && $impCalc <= 24.9) || ($metCalc >= 18.5 || $metCalc <= 24.9))
        {
         $bmi = $normal;
        }

    else
        {
         $bmi = $above;
        }

    if (isset($_POST['btnEnter']))
        {
         $selected_unit = $_POST['optUnit'];
         if($selected_unit == 'imperial')
            {
             $imperial_status = 'checked';
             echo "A height of {$height} inches and a weight of {$weight} pounds = {$impCalc} BMI.  Your BMI calc is: {$bmi}";
            }
        else if($selected_unit =='metric')
            {
             $metric_status = 'checked';
             echo "A height of {$height} meters and a weight of {$weight} kilograms: {$metCalc} BMI.  Your BMI calc is: {$bmi}";
            }
        }


?>

我究竟做错了什么?

编辑:我在表单上有两个单选按钮,以便用户可以选择公制(米和千克)或英制(英寸和磅)。 我希望它能够根据选择的方法进行计算(英制BMI由(重量* 703)/(高度*高度)计算,而度量单位是重量/(高度*高度)。我的输出总是很奇怪(它确实BMI计算正确(至少从我所看到的情况而言),但是当我需要将其输出到以下,正常或以上时,它总是显示错误的内容。

我不完全了解BMI,但是这一行看起来很奇怪:

elseif (($impCalc >= 18.5 && $impCalc <= 24.9) || ($metCalc >= 18.5 || $metCalc <= 24.9))

我认为应该是这样的:

elseif (($impCalc >= 18.5 && $impCalc <= 24.9) || ($metCalc >= 18.5 && $metCalc <= 24.9))

否则,这将是没有意义的,因为所有数字都符合这些条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM