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 Loops Working with Loops

Jonathan Lee
Jonathan Lee
1,565 Points

How do I add all the values of the array to the sum?

sum = sum + numbers[counter] // out of bounds sum = sum + numbers[1...6] // unknown error help please

while.swift
let numbers = [2,8,1,16,4,3,9]
var sum = 0
var counter = 0

// Enter your code below
while counter < numbers.count {
  print(numbers[counter])
  counter++

 }
Jonathan Lee
Jonathan Lee
1,565 Points

I believe the error was due to the fact that I inserted sum += numbers[counter] after counter ++ instead of before.

while counter < numbers[counter]
counter++
sum += numbers[counter]

This was the code that I had an error with.

Anjali Pasupathy
Anjali Pasupathy
28,883 Points

You're correct. In the last run of the loop, counter is increased to an index higher than the last index in numbers. That's why you get the array out of bounds error.

1 Answer

Anjali Pasupathy
Anjali Pasupathy
28,883 Points

sum = sum + numbers[counter] shouldn't be out of bounds if you're putting that line of code inside the while loop. I copied and pasted your code with "sum = sum + numbers[counter]" replacing "print(numbers[counter])" because you don't need to print anything for this challenge, and it passed.

let numbers = [2,8,1,16,4,3,9]
var sum = 0
var counter = 0

// Enter your code below
while counter < numbers.count {
  sum = sum + numbers[counter]
  counter++

 }