Array traversal means visiting each element in an array one by one to read or process it.
Click to reveal answer
beginner
How do you traverse an array from start to end in Go?
Use a for loop starting from index 0 up to the last index, accessing each element by its index.
Click to reveal answer
beginner
What is the difference between forward and backward traversal?
Forward traversal visits elements from the first to the last. Backward traversal visits from the last to the first.
Click to reveal answer
intermediate
Why might you use a step size greater than 1 when traversing an array?
To skip elements and visit every nth element, which can be useful for sampling or pattern checks.
Click to reveal answer
intermediate
Explain the 'two-pointer' traversal pattern.
Two pointers start at different positions (often start and end) and move towards each other or in the same direction to solve problems efficiently.
Click to reveal answer
Which Go loop is commonly used for array traversal?
Afor loop
Bwhile loop
Cdo-while loop
Dforeach loop
✗ Incorrect
Go uses 'for' loops for all looping needs, including array traversal.
What is the index of the last element in an array of length 10?
A11
B10
C0
D9
✗ Incorrect
Array indices start at 0, so the last index is length - 1, which is 9.
What does backward traversal mean?
AVisiting elements from first to last
BVisiting elements from last to first
CSkipping every other element
DVisiting elements randomly
✗ Incorrect
Backward traversal means visiting elements starting from the end towards the beginning.
In two-pointer traversal, where do the pointers usually start?
ABoth at the start
BBoth at the end
COne at start, one at end
DRandom positions
✗ Incorrect
Two-pointer technique often uses one pointer at the start and one at the end.
Why would you use a step size of 2 in array traversal?
ATo visit only even-indexed elements
BTo visit every element
CTo visit only odd-indexed elements
DTo visit elements in reverse
✗ Incorrect
A step size of 2 starting at index 0 visits even-indexed elements.
Describe how to traverse an array forward and backward in Go.
Think about how the index changes in each direction.
You got /4 concepts.
Explain the two-pointer traversal pattern and give a simple example use case.
Imagine checking if a word reads the same forwards and backwards.
You got /4 concepts.
Practice
(1/5)
1. What does the following Go code snippet do? for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) }
easy
A. Prints each element of the array from start to end
B. Prints the array elements in reverse order
C. Prints only the first element of the array
D. Causes a runtime error due to index out of range
Solution
Step 1: Understand the loop structure
The loop starts at index 0 and runs while i is less than the length of the array, increasing i by 1 each time.
Step 2: Analyze the print statement inside the loop
Each iteration prints the element at index i, so all elements from start to end are printed in order.
Final Answer:
Prints each element of the array from start to end -> Option A
Quick Check:
Loop from 0 to len(arr)-1 prints all elements [OK]
Hint: Loop from 0 to len(arr) prints all elements in order [OK]
Common Mistakes:
Thinking it prints in reverse order
Assuming it prints only one element
Confusing loop condition causing error
2. Which of the following is the correct syntax to traverse an array arr using a range-based for loop in Go?
easy
A. for value in arr { fmt.Println(value) }
B. for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) }
C. for index, value := range arr { fmt.Println(index, value) }
D. foreach i in arr { fmt.Println(arr[i]) }
Solution
Step 1: Recall Go's range syntax
Go uses for index, value := range arr to iterate over arrays or slices.
Step 2: Check each option
for index, value := range arr { fmt.Println(index, value) } matches the correct syntax. for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) } is valid but not range-based. Options C and D are invalid Go syntax.
Final Answer:
for index, value := range arr { fmt.Println(index, value) } -> Option C
Quick Check:
Range loop syntax = for index, value := range arr { fmt.Println(index, value) } [OK]
Hint: Use 'for index, value := range arr' for range loops in Go [OK]
Common Mistakes:
Using Python or other language syntax
Confusing traditional for loop with range loop
Using invalid keywords like foreach
3. What is the output of the following Go code?
arr := []int{10, 20, 30, 40}
for i := len(arr) - 1; i >= 0; i-- {
fmt.Print(arr[i], " ")
}
medium
A. 10 20 30 40
B. 40 30 20 10
C. Runtime error due to invalid index
D. No output
Solution
Step 1: Understand the loop range
The loop starts at index len(arr)-1 (3) and decrements i until it reaches 0.
Step 2: Trace the printed values
Indexes printed: 3, 2, 1, 0 corresponding to values 40, 30, 20, 10 printed with spaces.
Final Answer:
40 30 20 10 -> Option B
Quick Check:
Reverse loop prints elements backward [OK]
Hint: Loop from len(arr)-1 down to 0 prints array in reverse [OK]
Common Mistakes:
Assuming forward order output
Off-by-one errors causing runtime error
Confusing loop condition direction
4. Identify the error in this Go code snippet that tries to print all elements of an array arr:
for i := 0; i <= len(arr); i++ {
fmt.Println(arr[i])
}
medium
A. The print statement syntax is incorrect
B. The loop variable should start from 1 instead of 0
C. The array arr is not declared
D. The loop condition should be i < len(arr) to avoid index out of range
Solution
Step 1: Analyze the loop condition
The loop runs while i <= len(arr), which means i can equal len(arr), an invalid index.
Step 2: Understand array indexing
Array indexes go from 0 to len(arr)-1. Accessing arr[len(arr)] causes runtime error.
Final Answer:
The loop condition should be i < len(arr) to avoid index out of range -> Option D
Quick Check:
Index must be less than length, not less or equal [OK]
Hint: Use i < len(arr) to avoid out-of-range errors [OK]
Common Mistakes:
Using <= instead of < in loop condition
Starting loop at 1 instead of 0
Ignoring array declaration errors
5. Given an array arr := []int{1, 2, 3, 4, 5}, which code snippet correctly prints only the elements at even indexes (0, 2, 4)?
hard
A. for i := 0; i < len(arr); i += 2 { fmt.Print(arr[i], " ") }
B. for i := 1; i < len(arr); i += 2 { fmt.Print(arr[i], " ") }
C. for _, v := range arr { if v%2 == 0 { fmt.Print(v, " ") } }
D. for i := len(arr)-1; i >= 0; i-- { if i%2 == 1 { fmt.Print(arr[i], " ") } }
Solution
Step 1: Understand the requirement
We want to print elements at even indexes: 0, 2, 4.
Step 2: Check each option
for i := 0; i < len(arr); i += 2 { fmt.Print(arr[i], " ") } increments i by 2 starting at 0, correctly accessing even indexes. for i := 1; i < len(arr); i += 2 { fmt.Print(arr[i], " ") } accesses odd indexes. for _, v := range arr { if v%2 == 0 { fmt.Print(v, " ") } } prints even values, not indexes. for i := len(arr)-1; i >= 0; i-- { if i%2 == 1 { fmt.Print(arr[i], " ") } } prints odd indexes in reverse.
Final Answer:
for i := 0; i < len(arr); i += 2 { fmt.Print(arr[i], " ") } -> Option A
Quick Check:
Increment by 2 from 0 prints even indexes [OK]
Hint: Increment index by 2 starting at 0 for even indexes [OK]
Common Mistakes:
Confusing even indexes with even values
Starting loop at 1 instead of 0
Using incorrect loop increments
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.