Bird
Raised Fist0
Goprogramming~5 mins

Logical operators in Go

Choose your learning style10 modes available
Introduction

Logical operators help you combine or change true/false values to make decisions in your program.

Checking if two conditions are both true before running some code.
Running code if at least one of several conditions is true.
Making sure a condition is not true before continuing.
Combining multiple checks to control program flow clearly.
Syntax
Go
condition1 && condition2  // AND: true if both are true
condition1 || condition2  // OR: true if at least one is true
!condition               // NOT: true if condition is false

Use && for AND, || for OR, and ! for NOT.

Logical operators work with boolean values: true or false.

Examples
AND returns true only if both a and b are true.
Go
a := true
b := false
result := a && b  // result is false
OR returns true if either a or b is true.
Go
a := true
b := false
result := a || b  // result is true
NOT flips the value: true becomes false, false becomes true.
Go
a := true
result := !a  // result is false
Sample Program

This program shows how to use AND, OR, and NOT operators with boolean values. It also uses them in an if statement to check conditions.

Go
package main

import "fmt"

func main() {
    a := true
    b := false

    fmt.Println("a AND b:", a && b)  // false
    fmt.Println("a OR b:", a || b)   // true
    fmt.Println("NOT a:", !a)        // false

    // Using logical operators in if
    if a && !b {
        fmt.Println("a is true and b is false")
    }
}
OutputSuccess
Important Notes

Logical operators short-circuit: in a && b, if a is false, b is not checked.

Use parentheses () to group conditions clearly when combining multiple logical operators.

Summary

Logical operators combine true/false values to control decisions.

&& means AND, || means OR, and ! means NOT.

They help write clear and simple conditions in your programs.

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