Start learning free

LESSON 166 OF 414 · PROJECTS: EVERYDAY PROGRAMS

Shopping Cart V5 - Coupon Codes in Scala

Practice

Use a map as a fast lookup table for coupon discounts.

You start with:

        val subtotal = 100
        val coupon = "SAVE20"
        val coupons = scala.collection.mutable.Map("SAVE10" -> 10, "SAVE20" -> 20, "SAVE50" -> 50)

Build:

Total: $80

Rules:

  • Look up coupon in coupons. If it is there, its value is the discount; if it is not (an unknown code), the discount is 0.
  • total = subtotal - discount.
  • Build the text "Total: $<total>" (e.g. "Total: $80"; an unknown coupon would give "Total: $100").
  • Store it in result, then print it with println(result).

Use coupons.getOrElse(coupon, 0): it returns the value if the key is present, or 0 if it is missing.

In Scala "Total: $" + total converts the number to text for you.

        val subtotal = 100
        val coupon = "SAVE20"
        val coupons = scala.collection.mutable.Map("SAVE10" -> 10, "SAVE20" -> 20, "SAVE50" -> 50)

        val discount = coupons.getOrElse(coupon, 0)
        val total = subtotal - discount
        val result = "Total: $" + total
        println(result)

STEP 1 OF 4
    Ctrl + Enter to check

    Shopping Cart V5 in Scala

    Keep going with ScalaAbout 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free