Bird
Raised Fist0
Goprogramming~20 mins

Logical operators in Go - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Logical Operators Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of combined logical operators
What is the output of this Go program?
package main
import "fmt"
func main() {
  a := true
  b := false
  c := true
  fmt.Println(a && b || c)
}
Go
package main
import "fmt"
func main() {
  a := true
  b := false
  c := true
  fmt.Println(a && b || c)
}
Atrue
Bpanic at runtime
CCompilation error
Dfalse
Attempts:
2 left
๐Ÿ’ก Hint
Remember that && has higher precedence than || in Go.
โ“ Predict Output
intermediate
2:00remaining
Result of negation and OR operator
What will this Go code print?
package main
import "fmt"
func main() {
  x := false
  y := true
  fmt.Println(!x || y)
}
Go
package main
import "fmt"
func main() {
  x := false
  y := true
  fmt.Println(!x || y)
}
Atrue
Bfalse
CCompilation error
Dpanic at runtime
Attempts:
2 left
๐Ÿ’ก Hint
Negation (!) flips the boolean value.
โ“ Predict Output
advanced
2:00remaining
Output of chained logical operators with variables
What is the output of this Go program?
package main
import "fmt"
func main() {
  a := false
  b := false
  c := true
  d := true
  fmt.Println(a || b && c && d)
}
Go
package main
import "fmt"
func main() {
  a := false
  b := false
  c := true
  d := true
  fmt.Println(a || b && c && d)
}
ACompilation error
Btrue
Cfalse
Dpanic at runtime
Attempts:
2 left
๐Ÿ’ก Hint
Remember operator precedence: && before ||.
โ“ Predict Output
advanced
2:00remaining
Output of logical AND with short-circuit
What does this Go code print?
package main
import "fmt"
func main() {
  x := false
  y := true
  fmt.Println(x && y)
}
Go
package main
import "fmt"
func main() {
  x := false
  y := true
  fmt.Println(x && y)
}
Atrue
BCompilation error
Cpanic at runtime
Dfalse
Attempts:
2 left
๐Ÿ’ก Hint
Logical AND returns false if the first operand is false.
โ“ Predict Output
expert
2:00remaining
Output of complex logical expression with parentheses
What is the output of this Go program?
package main
import "fmt"
func main() {
  a := true
  b := false
  c := true
  d := false
  fmt.Println((a || b) && (c && !d))
}
Go
package main
import "fmt"
func main() {
  a := true
  b := false
  c := true
  d := false
  fmt.Println((a || b) && (c && !d))
}
Afalse
Btrue
CCompilation error
Dpanic at runtime
Attempts:
2 left
๐Ÿ’ก Hint
Evaluate inside parentheses first, then combine.

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