Bird
Raised Fist0
Goprogramming~30 mins

Logical operators in Go - Mini Project: Build & Apply

Choose your learning style10 modes available
Logical operators
📖 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

  1. Step 1: Understand the meaning of logical AND

    The AND operator returns true only when both conditions it connects are true.
  2. Step 2: Identify Go's AND operator

    In Go, the AND operator is written as &&, which matches the description.
  3. Final Answer:

    && -> Option D
  4. 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

  1. 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.
  2. Step 2: Match options with correct syntax

    !x uses !x, which is the correct syntax for NOT in Go.
  3. Final Answer:

    !x -> Option B
  4. 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

  1. Step 1: Evaluate !b

    b is false, so !b is true.
  2. Step 2: Evaluate a && !b

    a is true and !b is true, so a && !b is true.
  3. Step 3: Evaluate (a && !b) || b

    true || false is true.
  4. Final Answer:

    true -> Option A
  5. 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

  1. Step 1: Check logical operators in if condition

    The code uses & which is bitwise AND, not logical AND.
  2. Step 2: Identify correct operator for boolean logic

    Logical AND in Go is &&, so & causes a type error here.
  3. Final Answer:

    Using & instead of && in if condition -> Option A
  4. 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

  1. Step 1: Understand the range condition

    We want score to be at least 50 and at most 100, so both conditions must be true.
  2. Step 2: Choose correct logical operator

    AND (&&) combines conditions that both must be true; OR (||) would allow values outside the range.
  3. Step 3: Check inclusivity

    Using >= and <= includes 50 and 100 themselves.
  4. Final Answer:

    score >= 50 && score <= 100 -> Option C
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard