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 ifif 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
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.