📖 Scenario: You are helping a small grocery store manage their daily sales data. The store records the number of items sold each day in a week.
🎯 Goal: Build a simple Go program that stores the daily sales in an array, sets a target sales number, counts how many days met or exceeded the target, and then prints the count.
📋 What You'll Learn
Create an array called dailySales with exactly 7 integers representing sales for each day: 12, 15, 7, 20, 18, 5, 10
Create an integer variable called target and set it to 10
Use a for loop with index i to traverse dailySales and count how many days have sales greater than or equal to target
Print the count of days meeting or exceeding the target using fmt.Println
💡 Why This Matters
🌍 Real World
Counting how many days meet a sales target helps store managers understand performance and plan inventory.
💼 Career
Array traversal and conditional counting are fundamental skills for data processing and analysis in software development.
Progress0 / 4 steps
1
Create the daily sales array
Create an array called dailySales with these exact 7 integers: 12, 15, 7, 20, 18, 5, 10
DSA Go
Hint
Use Go array syntax: varName := [7]int{values}
2
Set the sales target
Create an integer variable called target and set it to 10
DSA Go
Hint
Use simple variable assignment: target := 10
3
Count days meeting or exceeding the target
Use a for loop with index i to traverse dailySales and count how many days have sales greater than or equal to target. Store the count in a variable called count
DSA Go
Hint
Use for i := 0; i < len(dailySales); i++ to loop through the array
4
Print the count of days meeting or exceeding the target
Print the variable count using fmt.Println
DSA Go
Hint
Use fmt.Println(count) to print the result
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.