Start learning free

LESSON 179 OF 415 · PROJECTS: EVERYDAY PROGRAMS

Report Card V5 - Subject to Grade Dictionary in Swift

Practice

Use a dictionary, a loop, and conditionals to print each subject with its letter grade in alphabetical order.

You start with:

var grades = [String: Int]()
grades["Math"] = 92
grades["English"] = 78
grades["Science"] = 85
grades["History"] = 67

Build:

English: C
History: D
Math: A
Science: B

Rules:

  • Visit the subjects in alphabetical order.
  • Look up each subject's score in the dictionary and apply the grading scale (90+ A, 80s B, 70s C, 60s D, else F).
  • On each iteration print the subject, a colon and a space, then the grade, for example English: C.

Use a [String: Int] dictionary and iterate with grades.keys.sorted() - it gives keys in sorted order.

var grades = [String: Int]()
grades["Math"] = 92
grades["English"] = 78
grades["Science"] = 85
grades["History"] = 67

for subject in grades.keys.sorted() {
    let score = grades[subject]!
    var grade = ""
    if score >= 90 {
        grade = "A"
    } else if score >= 80 {
        grade = "B"
    } else if score >= 70 {
        grade = "C"
    } else if score >= 60 {
        grade = "D"
    } else {
        grade = "F"
    }
    print("\(subject): \(grade)")
}

STEP 1 OF 9
    Ctrl + Enter to check

    Report Card V5 in Swift

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