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 trial

iOS Swift 2.0 Collections and Control Flow Control Flow With Conditional Statements Working with Switch Statements

Ryan Maneo
Ryan Maneo
4,342 Points

Am I appending wrong?

Hi, as you can see below I appended the correct european country capitols to the "europeanCapitols" variable. But it said I was wrong, am I appending incorrectly? I compared it to my practice code, it matched up just fine.

switch.swift
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 {
    switch key {
    case value.append("Vaduz", "Brussels", "Sofia"): europeanCapitols
    }

    // I didn't show the rest here––but this is what I expected it to mean by append the values to the correct capitol groups... but it said I was wrong?
}

1 Answer

Nathan Tallack
Nathan Tallack
22,160 Points

You were on the right track with using a case and switch. But you'd be wanting to make some cases out of the keys and then have the code for each case to do the append. It would look something like this.

for (key, value) in world {
    switch key {
    case "BEL", "LIE", "BGR":
        europeanCapitals.append(value)
    case "IND", "VNM":
        asianCapitals.append(value)
    default:
        otherCapitals.append(value)
    }