📖 Scenario: You are helping a store manager decide which products to restock based on their sales and stock levels.
🎯 Goal: Build a Go program that uses logical operators to find products that need restocking.
📋 What You'll Learn
Create a map called products with product names as keys and their stock counts as values.
Create a map called sales with product names as keys and their sales counts as values.
Create a variable called restockThreshold to set the minimum stock level before restocking.
Use a for loop with variables product and stock to iterate over products.
Inside the loop, use an if statement with logical operators && and || to check if a product's stock is below restockThreshold or if sales are high.
Print the names of products that need restocking.
💡 Why This Matters
🌍 Real World
Stores often need to decide which products to order more of based on current stock and sales trends.
💼 Career
Understanding logical operators and data structures like maps is essential for roles in software development, data analysis, and inventory management systems.
Progress0 / 4 steps
1
Create the products map
Create a map called products with these exact entries: "Apples": 50, "Bananas": 20, "Cherries": 0, "Dates": 15.
Go
Hint
Use map[string]int to create a map with string keys and int values.
2
Create the sales map and restock threshold
Create a map called sales with these exact entries: "Apples": 30, "Bananas": 50, "Cherries": 5, "Dates": 10. Also create an integer variable called restockThreshold and set it to 20.
Go
Hint
Use the same map syntax as before for sales. Use := to create restockThreshold.
3
Use logical operators to find products to restock
Use a for loop with variables product and stock to iterate over products. Inside the loop, use an if statement with logical operators && and || to check if stock is less than restockThreshold or if sales[product] is greater than 30. If so, add the product to a slice called toRestock.
Go
Hint
Use range to loop over the map. Use append to add to the slice.
4
Print the products to restock
Write a for loop with variable product to iterate over toRestock and print each product.
Go
Hint
Use for _, product := range toRestock to loop over the slice and fmt.Println(product) to print.
Practice
(1/5)
1. Which logical operator in Go means AND and returns true only if both conditions are true?
easy
A. !
B. ||
C. &
D. &&
Solution
Step 1: Understand the meaning of logical AND
The AND operator returns true only when both conditions it connects are true.
Step 2: Identify Go's AND operator
In Go, the AND operator is written as &&, which matches the description.
Final Answer:
&& -> Option D
Quick Check:
AND = && [OK]
Hint: AND is &&, OR is ||, NOT is ! [OK]
Common Mistakes:
Confusing & (bitwise AND) with && (logical AND)
Mixing OR (||) with AND (&&)
Using ! as AND operator
2. Which of the following is the correct syntax for the logical NOT operator in Go?
easy
A. not x
B. !x
C. ~x
D. x!
Solution
Step 1: Recall Go syntax for logical NOT
In Go, the logical NOT operator is a single exclamation mark placed before the variable or expression.
Step 2: Match options with correct syntax
!x uses !x, which is the correct syntax for NOT in Go.
Final Answer:
!x -> Option B
Quick Check:
NOT = ! [OK]
Hint: NOT always uses ! before the condition [OK]
Common Mistakes:
Writing 'not x' like in some other languages
Using ~ which is bitwise NOT, not logical NOT
Placing ! after the variable
3. What is the output of this Go code snippet?
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println(a && !b || b)
}
medium
A. true
B. false
C. Syntax error
D. Compilation error
Solution
Step 1: Evaluate !b
b is false, so !b is true.
Step 2: Evaluate a && !b
a is true and !b is true, so a && !b is true.
Step 3: Evaluate (a && !b) || b
true || false is true.
Final Answer:
true -> Option A
Quick Check:
True AND NOT False OR False = True [OK]
Hint: Evaluate NOT first, then AND, then OR [OK]
Common Mistakes:
Evaluating OR before AND
Forgetting to negate b
Assuming false || true is false
4. Identify the error in this Go code snippet:
package main
import "fmt"
func main() {
x := true
y := false
if x & y {
fmt.Println("Both true")
}
}
medium
A. Using & instead of && in if condition
B. Missing parentheses around condition
C. fmt.Println syntax error
D. Variable declaration error
Solution
Step 1: Check logical operators in if condition
The code uses & which is bitwise AND, not logical AND.
Step 2: Identify correct operator for boolean logic
Logical AND in Go is &&, so & causes a type error here.
Final Answer:
Using & instead of && in if condition -> Option A
Quick Check:
Logical AND needs &&, not & [OK]
Hint: Use && for logical AND, & is bitwise [OK]
Common Mistakes:
Using & instead of && for booleans
Assuming & works like && in conditions
Ignoring compiler error messages
5. Given a variable score (int), which condition correctly checks if score is between 50 and 100 inclusive using logical operators in Go?
hard
A. score >= 50 || score <= 100
B. score > 50 && score < 100
C. score >= 50 && score <= 100
D. score > 50 || score < 100
Solution
Step 1: Understand the range condition
We want score to be at least 50 and at most 100, so both conditions must be true.
Step 2: Choose correct logical operator
AND (&&) combines conditions that both must be true; OR (||) would allow values outside the range.
Step 3: Check inclusivity
Using >= and <= includes 50 and 100 themselves.
Final Answer:
score >= 50 && score <= 100 -> Option C
Quick Check:
Between means AND, not OR [OK]
Hint: Use && to combine conditions that both must be true [OK]
Common Mistakes:
Using || which allows values outside range
Using > and < excludes boundary values
Confusing AND and OR logic
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.