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 trialMahmoud Essa
1,173 Pointswhat is wrong in this let months = [1, 2, 3] for month in months { if months[month] == 1 { println("January") }}
let months = [1, 2, 3]
for month in months { if months[month] == 1 { println("January") } else if months[month] == 2 { println("February") } else if months[month] == 3 { println("March") } }
let months = [1, 2, 3]
for month in months
{
if months[month] == 1
{
println("January")
}
else if months[month] == 2
{
println("February")
}
else if months[month] == 3
{
println("March")
}
}
1 Answer
Steve Hunter
57,712 PointsHi there,
When you use a for
loop like this, the loop iterates through each element of the array and performs whatever code is inside the loop on each element in turn.
The loop uses a variable to hold each element in your case, that variable is month
. So the line for month in months
says to the compiler, "we're going to iterate through every element of the array months
one element at a a time - put each element's value in the variable called month
one by one."
So, where you have if months[month] == 1
what you really to put is if month == 1
as the vriable month
with hold the value 1 on the first loop, 2 on the second, and so on. If you were using a more traditional for
loop that was incrementing from zero, for example, you could then use months[i]
but the use of the for/each/in
construction means you can bypass that.
Please let me know if that makes sense else I'll try again!
Steve.
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")
}
}