如果其他声明灾难

复仇者

今天,我决定要制作一个简单的js代码,该代码可以接受一个数字(以米为单位),并确定要使用的适当度量单位。原来的代码比我预期的要复杂一些,但是当我发现它们时,我能够找出大多数错误(即使这意味着要重新排列我的所有代码)。但是,当涉及到我的if / else语句时,我无法弄清楚。如果我输入的数字小于1,则不会发生任何事情。如果我输入的数字大于9,则每次都会记录相同的内容。结构本身可能需要一些工作,但是如果有人可以通过if / else语句帮助我,我将非常感激。这是代码(在主体加载时调用init):

function init() {
            var x = prompt("How many meters?");
            convertMetricMeters(x);

            function convertDown(x) {
                if (0.1 >= x >= 0.99) {
                    console.log("deci");
                }

                else if (0.100 >= x >= 0.999) {
                    console.log("centi");
                }

                else if (0.1000 >= x) {
                    console.log("milli");
                }

                else {
                    console.log("error");
                }   
            }               

            function convertUp(x) {
                if (1 <= x <= 99) {
                    console.log("deca");
                }

                else if (100 <= x <= 999) {
                    console.log("hecto");
                }

                else if (1000 <= x) {
                    console.log("kilo");
                }

                else {
                    console.log("error");
                }
            }

            function convertMetricMeters(x) {
                if (x < 1) {
                    convertDown(x);
                }

                else if (x > 9) {
                    convertUp(x);
                }

                else {
                    console.log("Appropriate Metric Unit");
                }
            }
        }
纳比尔·汗(Nabeel Khan)

您的代码有2种错误。一种很容易解决,您必须&&if语句中的两个条件之间添加

现在转到另一部分,少于1个项目。它需要不同的逻辑。好吧,您的数学似乎需要一点点的注意。0.1与0.100相同且与0.1000相同

我已经更新了代码,以查找小数点后的位数,然后相应地输入console.log。

更新后的代码将是:

  function init() {
        var x = prompt("How many meters?");
        convertMetricMeters(x);

        function convertDown(x) {

            // checks the number of digits after decimal point
            decimals = (x.split('.')[1] || []).length

            if (decimals == 1 || decimals == 2) {
                console.log("deci");
            }

            else if (decimals == 3) {
                console.log("centi");
            }

            else if (decimals == 4) {
                console.log("milli");
            }

            else {
                console.log("error");
            }   
        }               

        function convertUp(x) {
            if (1 <= x && x <= 99) {
                console.log("deca");
            }

            else if (100 <= x && x <= 999) {
                console.log("hecto");
            }

            else if (1000 <= x) {
                console.log("kilo");
            }

            else {
                console.log("error");
            }
        }

        function convertMetricMeters(x) {
            if (x < 1) {
                convertDown(x);
            }

            else if (x > 9) {
                convertUp(x);
            }

            else {
                console.log("Appropriate Metric Unit");
            }
        }
    }

可用的jsfiddle示例:https://jsfiddle.net/w7pf3moL/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章