## 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.

# Arrays/ For-IN/If-then Assignment

I have been stuck on this task for over a day. The video does not seem to give insight on how to solve this problem, and the editor will not tell me what I am doing wrong. I have looked elsewhere to find the solution, and I have been working it out on Xcode

Finally I have seemed to get the correct output while using Xcode. The console returns January, February and March. When I copy and the paste the code into the treehouse editor the only response I get is 'Bummer Dude!' with no explanation as to why the code is not accepted. Here is the what I have:

```let months = [1, 2, 3]

for month in months{
if month == months[0]{
println("January")
} else if month == months[1]{
print("February")
} else{
println("March")
}
}

let months = [1, 2, 3]

for month in months{
if month == months[0]{
println("January")
} else if month == months[1]{
print("February")
} else{
println("March")
}
}
```

Hi Vincent,

This is a fiddly challenge and one that, in reality, you'd never replicate code-wise as the result is horribly clunky.

The result shoudl look like:

```let months = [1, 2, 3]
for month in months {
if (month == 1) {
println("January")
}
else if (month == 2) {
println("February")
}
else if (month == 3) {
println("March")
}
}
```

So, we've got an array and we're looping through that with the `for month in months` statement.

This presents us with each individual `month` in turn as it iterates through the array. So, it is first 1 then 2 then 3. The loop then ends.

What we need to do is to see what each presented `month` is and output the appropriate string.

So the first iteration, `month` is 1 - so the nasty nested `if` statement says `if (month == 1)` output January. And so on.

I hope that clears it up for you. And sorry for leaping straight to the solution but I don't think you should dwell on this for ages. The concept is key - this example is a bit ugly.

Steve.

Yep - OK.

We're using the content of the array, not the index. So, in this array `month[0]` the first element is `1`. The secong element, `month[1]` is `2`. These could equally be any other value but we've got an array of integers.

The loop iterates through each item without expressly calling the index. So, it loops first to `month[0]` and sees if the contents of `month[0]` are equal to the value of `1`.

On each loop, the object held by the `month` variable is the content of each element of the array, first pass it is `month[0]`, on the second pass, `month` holds `month[1]` etc. There's no counter numbering convention here; we just never use the [x] method of accessing the array.

I hope that makes sense.

Steve.

Thanks Steve!

I guess I am not understanding why when referring to an item in the array for the if-else statement in this example, it is not 0,1, and 2, but is 1,2 and 3. This seems to counter what was taught in the videos about numbering items in an array. I also do not understand why my solution would work in X-code and not in the editor. Anyways, thanks for clearing that up!

That does make sense when you explain it in that way, but I would have never guessed that was the problem. Thank Again!