Search code examples
dictionaryswiftcontrol-flowfor-in-loop

Swift for-in loop dictionary experiment


I'm almost a complete programming beginner and I've started to go through a Swift ebook from Apple.

The things I read are pretty clear, but once you start to experiment things get tricky :).

I'm stuck with the experiment in the Control Flow section. Here is the initial code:

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]

var largest = 0
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}

largest

And here is the task:

Add another variable to keep track of which kind of number was the largest, as well as what that largest number was.

As I understand, they want me to add up all the values in each number kind (get a total sum for Prime, Fibonacci and Square) and then compare the result to show the largest result. But I can't figure out the syntax.

Can someone share any advice on how to tackle this experiment? Maybe I'm not understanding the problem?


Solution

  • They're just asking you to keep track of which number category the largest number belongs to:

    let interestingNumbers = [
        "Prime": [2, 3, 5, 7, 11, 13],
        "Fibonacci": [1, 1, 2, 3, 5, 8],
        "Square": [1, 4, 9, 16, 25],
    ]
    var largest = 0
    var largestkind = ""
    for (kind, numbers) in interestingNumbers {
        for number in numbers {
            if number > largest {
                largest = number
                largestkind = kind
            }
        }
    }
    largest
    largestkind