📖 Scenario: You are organizing a small event where you want to print a seating chart. The event has 3 rows and 4 seats in each row. You want to label each seat with its row and seat number.
🎯 Goal: Build a Go program that uses nested loops to print seat labels for each row and seat number in the format Row X Seat Y.
📋 What You'll Learn
Create a variable rows with the value 3
Create a variable seatsPerRow with the value 4
Use a nested for loop where the outer loop uses row and the inner loop uses seat
Print each seat label in the format Row X Seat Y using fmt.Println
💡 Why This Matters
🌍 Real World
Nested loops are useful when you need to handle data with multiple levels, like rows and columns in a table or seats in a theater.
💼 Career
Understanding nested loops is important for jobs involving data processing, UI layout, and simulations where multiple dimensions or layers of data exist.
Progress0 / 4 steps
1
Create variables for rows and seats per row
Create two variables: rows with the value 3 and seatsPerRow with the value 4.
Go
Hint
Use := to create variables and assign values in Go.
2
Set up the outer loop for rows
Add a for loop using the variable row that runs from 1 to rows inclusive.
Go
Hint
Use a for loop with initialization, condition, and increment.
3
Add the inner loop for seats
Inside the for loop for row, add another for loop using the variable seat that runs from 1 to seatsPerRow inclusive.
Go
Hint
Place the inner loop inside the outer loop's curly braces.
4
Print the seat labels
Inside the inner loop, use fmt.Println to print the seat label in the format Row X Seat Y where X is the current row and Y is the current seat.
Go
Hint
Use fmt.Println("Row", row, "Seat", seat) to print the label.
Practice
(1/5)
1. What does a nested loop in Go do? for i := 0; i < 3; i++ { for j := 0; j < 2; j++ { // code } }
easy
A. Runs one loop inside another to repeat code multiple times
B. Runs two loops one after another without overlap
C. Runs only the inner loop once
D. Creates an infinite loop automatically
Solution
Step 1: Understand nested loops structure
The outer loop runs 3 times, and for each outer loop iteration, the inner loop runs 2 times.
Step 2: Explain the repetition effect
This means the inner code runs 3 * 2 = 6 times, repeating actions multiple times inside another loop.
Final Answer:
Runs one loop inside another to repeat code multiple times -> Option A
Quick Check:
Nested loops repeat code multiple times [OK]
Hint: Nested loops repeat inner code for each outer loop cycle [OK]
Common Mistakes:
Thinking loops run sequentially without nesting
Assuming inner loop runs only once
Believing nested loops cause infinite loops automatically
2. Which of the following is the correct syntax for a nested loop in Go?
easy
A. for i := 0; i < 3; i++; for j := 0; j < 2; j++ { fmt.Println(i, j) }
B. for i := 0; i < 3; i++ { for j < 2 { fmt.Println(i, j); j++ } }
C. for i := 0; i < 3; i++ { for j := 0; j < 2; j++ } fmt.Println(i, j)
D. for i := 0; i < 3; i++ { for j := 0; j < 2; j++ { fmt.Println(i, j) } }
Solution
Step 1: Check correct nested loop syntax
for i := 0; i < 3; i++ { for j := 0; j < 2; j++ { fmt.Println(i, j) } } correctly nests the inner for loop inside the outer loop with braces and increments.
Step 2: Identify syntax errors in other options
for i := 0; i < 3; i++ { for j < 2 { fmt.Println(i, j); j++ } } uses a while-style loop without declaring j, causing an undefined variable error in Go. for i := 0; i < 3; i++; for j := 0; j < 2; j++ { fmt.Println(i, j) } has two for loops separated by a semicolon, which is invalid. for i := 0; i < 3; i++ { for j := 0; j < 2; j++ } fmt.Println(i, j) places the print statement outside the inner loop braces, causing scope issues.
Final Answer:
for i := 0; i < 3; i++ { for j := 0; j < 2; j++ { fmt.Println(i, j) } } -> Option D
Quick Check:
Correct nested loop syntax = for i := 0; i < 3; i++ { for j := 0; j < 2; j++ { fmt.Println(i, j) } } [OK]
Hint: Remember Go uses braces and semicolons inside for loops [OK]
Common Mistakes:
Using semicolon between two for loops instead of nesting
Trying while-style loops without proper syntax
Placing code outside loop braces incorrectly
3. What is the output of this Go program?
package main
import "fmt"
func main() {
for i := 1; i <= 2; i++ {
for j := 1; j <= 3; j++ {
fmt.Print(i * j, " ")
}
fmt.Println()
}
}
medium
A. 2 4 6
1 2 3
B. 1 1 1
2 2 2
C. 1 2 3
2 4 6
D. 1 2 3 4 5 6
Solution
Step 1: Analyze outer loop iterations
The outer loop runs for i = 1 and i = 2.
Step 2: Calculate inner loop outputs for each i
For i=1, inner loop prints 1*1=1, 1*2=2, 1*3=3. For i=2, inner loop prints 2*1=2, 2*2=4, 2*3=6.
Final Answer:
1 2 3
2 4 6
-> Option C
Quick Check:
Multiplying i and j in nested loops = 1 2 3
2 4 6
[OK]
Hint: Multiply outer and inner loop counters for output [OK]
Common Mistakes:
Confusing loop ranges or order
Printing all numbers in one line without newline
Mixing up i and j in multiplication
4. Find the error in this nested loop code snippet:
for i := 0; i < 3; i++ {
for j := 0; j < 2; j++
fmt.Println(i, j)
}
medium
A. Missing braces {} for inner loop body
B. Outer loop condition is incorrect
C. Inner loop variable j is not declared
D. fmt.Println cannot be used inside loops
Solution
Step 1: Check inner loop syntax
The inner loop lacks braces {} around its body, which is required for multiple statements or to clearly define the loop block in Go.
Step 2: Understand Go syntax rules
Without braces, only the next statement is considered inside the loop. Here, fmt.Println is intended as the loop body but braces improve clarity and prevent errors.
Final Answer:
Missing braces {} for inner loop body -> Option A
Quick Check:
Braces needed for loop body in Go [OK]
Hint: Always use braces {} for nested loop bodies [OK]
Common Mistakes:
Assuming braces are optional for loops
Thinking variable declaration is missing
Believing fmt.Println can't be inside loops
5. You want to print a multiplication table from 1 to 4 using nested loops in Go. Which code snippet correctly achieves this?
hard
A. for i := 1; i < 4; i++ {
for j := 1; j < 4; j++ {
fmt.Println(i*j)
}
}
B. for i := 1; i <= 4; i++ {
for j := 1; j <= 4; j++ {
fmt.Printf("%d ", i*j)
}
fmt.Println()
}
C. for i := 1; i <= 4; i++ {
for j := 1; j <= 4; j++ {
fmt.Println(i+j)
}
fmt.Println()
}
D. for i := 1; i <= 4; i++ {
for j := 1; j <= 4; j++ {
fmt.Printf("%d ", i+j)
}
fmt.Println()
}
Solution
Step 1: Identify correct loop ranges
To print from 1 to 4, loops must run from 1 to 4 inclusive, so conditions use <= 4.
Step 2: Check output format and calculation
for i := 1; i <= 4; i++ {
for j := 1; j <= 4; j++ {
fmt.Printf("%d ", i*j)
}
fmt.Println()
} multiplies i and j and prints in one line with spaces, then prints a newline after inner loop, forming a table.
Step 3: Compare other options
for i := 1; i < 4; i++ {
for j := 1; j < 4; j++ {
fmt.Println(i*j)
}
} uses < 4, missing 4. Options C and D add i+j instead of multiplication, which is incorrect for multiplication table.
Final Answer:
for i := 1; i <= 4; i++ {
for j := 1; j <= 4; j++ {
fmt.Printf("%d ", i*j)
}
fmt.Println()
} -> Option B
Quick Check:
Correct ranges and multiplication print = for i := 1; i <= 4; i++ {
for j := 1; j <= 4; j++ {
fmt.Printf("%d ", i*j)
}
fmt.Println()
} [OK]
Hint: Use <= for inclusive range and multiply counters [OK]
Common Mistakes:
Using < instead of <= to miss last number
Adding instead of multiplying counters
Printing each number on a new line instead of a table
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.