1.12 实践

在编程学习中,实践是绝对无法替代的。无论我如何在这里阐释说明,理论都无法让你成为一个程序员。

谨记这一点。我们来尝试针对在本章中学习到的概念进行一些练习。我会给出“需求”,你先试着解决这些“需求”。然后查看以下列出的代码,看看我是如何解决的。

· 编写程序以计算购买手机所需的总金额。你需要一直购买手机(提示:循环!)直到银行账号中的资金不足。而且,只要价格低于你的心理预期值,那么就要为每个手机购买附件。

· 计算总金额后再加上税费,然后以适当的格式打印出计算出的总金额。

· 最后,检查银行账号的余额,确认是否能买得起。

· 需要为“税率”、“手机价格”、“附件价格”和“预算阈值”建立一些常量,为“银行账号的余额”建立变量。

· 你应该定义一些函数来计算税费,格式化价格加上“$”符号并保留两位小数。

· 附加题:试着在这个程序中集成输入,你可以使用1.3.2节中介绍的prompt(..)。比如,你可以提示用户输入他们的银行账号余额。享受吧,发挥你的创造力!

好了,你现在可以开始实践了。在你自己尝试之前不要先看我的代码!

因为本书是一本关于JavaScript的书,显然我会使用JavaScript来完成这个练习。但你也可以根据个人意愿而使用其他语言来实现。

以下是我针对上述练习而设计的JavaScript解决方案:

        const SPENDING THRESHOLD = 200;
        const TAX RATE = 0.08;
        const PHONE PRICE = 99.99;
        const ACCESSORY PRICE = 9.99;


        var bank balance = 303.91;
        var amount = 0;
        function calculateTax(amount) {


            return amount * TAX RATE;
        }


        function formatAmount(amount) {
            return "$" + amount.toFixed( 2 );
        }


        // 如果还有余额,那么继续购买手机
        while (amount < bank balance) {
            // 购买新的手机!
            amount = amount + PHONE PRICE;


            // 是否可以负担得起附件?
            if (amount < SPENDING THRESHOLD) {
              amount = amount + ACCESSORY PRICE;
            }
        }


        // 别忘了交税
        amount = amount + calculateTax( amount );


        console.log(
            "Your purchase: " + formatAmount( amount )
        );
        // 你的购买金额:$334.76


        // 你真的可以负担得起本次购买吗?
        if (amount > bank balance) {
            console.log(
              "You can't afford this purchase. :("
            );
        }
        // 你无法负担本次购买。:(

运行这个JavaScript程序最简单的方法是,将其输入到你手边浏览器的开发者终端中。

你是如何实现的呢?你现在已经看到了我的代码,不妨再试一下。你可以修改其中的一些常量,看看这个程序在不同的值之下是怎么运行的。