Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialKhaled M
829 PointsI'm stuck on this question. The format is rather different from the examples in the videos.
I don't understand this new format for the for loop
for (key, value) in world
var europeanCapitals: [String] = []
var asianCapitals: [String] = []
var otherCapitals: [String] = []
let world = [
"BEL": "Brussels",
"LIE": "Vaduz",
"BGR": "Sofia",
"USA": "Washington D.C.",
"MEX": "Mexico City",
"BRA": "Brasilia",
"IND": "New Delhi",
"VNM": "Hanoi"]
for (key, value) in world {
// Enter your code below
switch world {
case "BEL", "LIE", "BGR": europeanCapitals.append("BEL")
case "VNM", "IND": asianCapitals.append("VNM")
case "USA", "MEX", "BRA": otherCapitals.append("USA")
}
// End code
}
1 Answer
Jason Anders
Treehouse Moderator 145,860 PointsHi Kaled,
You are SUPER close and almost have it. You just need to fix up a couple of things.
In the world
dictionary, there are two separate values. One is the key
and the other is the value
. Here the Country Code is the key
and the Country name is the value
. That's why the for statement
is like that. It is going to loop over each key
and value
pair inside the world
dictionary.
With that in mind:
For the
switch statement
, you need to switch on what is being stored in thekey
variable. Right now, it's trying to "switch" on the entire dictionary.As the loop goes through every
key
,value
pair (now that it's switching on the key), with each case, you will want to append what is being stored in thevalue
variable to the new array.Switch statements should be "exhaustive", meaning there should always be a
default
case. The instructions hint at this by stating: "for the default case, append the values tootherCapitals
.
With the exception of the missing default
case, your syntax and logic is spot on! I hope this helps to clear up the bit of confusion you had with the syntax of the for loop
. Have a look at the corrected syntax and then take another read of the last paragraph of the challenge's instructions. I'm sure when you see them together, it'll make much more sense. :)
for (key, value) in world {
// Enter your code below
switch key {
case "BEL", "LIE", "BGR": europeanCapitals.append(value)
case "VNM", "IND": asianCapitals.append(value)
default: otherCapitals.append(value)
}
// End code
Nice work!! :)