📖 Scenario: You are building a simple security system that checks if a person can enter a building based on their ID badge and time of entry.
🎯 Goal: Create a program that uses logical patterns and and not to decide if entry is allowed.
📋 What You'll Learn
Create a boolean variable hasIDBadge with value true or false
Create an integer variable entryHour representing the hour of entry (0 to 23)
Create a boolean variable isWeekend to indicate if it is weekend
Use logical operators && (and) and ! (not) to check entry conditions
Print "Entry allowed" if conditions are met, otherwise print "Entry denied"
💡 Why This Matters
🌍 Real World
Security systems often check multiple conditions like ID badges and time to allow or deny access.
💼 Career
Understanding logical operators is essential for writing conditions in software development, especially in security, validation, and decision-making code.
Progress0 / 4 steps
1
Create initial variables
Create a boolean variable hasIDBadge and set it to true. Create an integer variable entryHour and set it to 14.
C Sharp (C#)
Hint
Use bool for true/false and int for numbers.
2
Add weekend variable
Add a boolean variable isWeekend and set it to false.
C Sharp (C#)
Hint
Weekend means no workday, so set isWeekend to false for now.
3
Write entry condition using logical operators
Write an if statement that checks if hasIDBadge is trueandentryHour is between 9 and 17 inclusive and it is not weekend (isWeekend is false). Use && for and and ! for not.
C Sharp (C#)
Hint
Use if (hasIDBadge && entryHour >= 9 && entryHour <= 17 && !isWeekend) to check all conditions.
4
Print the result
Inside the if block, write Console.WriteLine("Entry allowed"). Inside the else block, write Console.WriteLine("Entry denied").
C Sharp (C#)
Hint
Use Console.WriteLine to show the message on screen.
Practice
(1/5)
1.
Which logical operator in C# means both conditions must be true?
and, or, or not?
easy
A. and
B. or
C. not
D. xor
Solution
Step 1: Understand the meaning of logical operators
The and operator requires both conditions to be true for the whole expression to be true.
Step 2: Compare with other operators
or means one or both conditions are true, not negates a condition, and xor means exactly one condition is true.
Final Answer:
and -> Option A
Quick Check:
and means both true [OK]
Hint: Remember: and = both true, or = any true, not = reverse [OK]
Common Mistakes:
Confusing 'and' with 'or'
Thinking 'not' means both true
Mixing 'xor' with 'and'
2.
Which of these is the correct C# syntax for the logical NOT operator?
?
easy
A. not x
B. x!
C. !x
D. ~x
Solution
Step 1: Recall C# logical NOT syntax
In C#, the logical NOT operator is ! placed before the variable or expression.
Step 2: Check other options
not x is not valid C# syntax, ~x is bitwise NOT, and x! is invalid.
Final Answer:
!x -> Option C
Quick Check:
Logical NOT uses ! before expression [OK]
Hint: Logical NOT is always ! before the variable [OK]
Common Mistakes:
Using 'not' keyword instead of !
Confusing bitwise ~ with logical !
Placing ! after the variable
3.
What is the output of this C# code?
bool a = true;
bool b = false;
if (a && !b) {
Console.WriteLine("Yes");
} else {
Console.WriteLine("No");
}
medium
A. No
B. Yes
C. True
D. False
Solution
Step 1: Evaluate variables and conditions
Variable a is true, b is false, so !b is true.
Step 2: Evaluate the if condition
a && !b becomes true && true, which is true, so the if block runs.
Final Answer:
Yes -> Option B
Quick Check:
true and not false = true [OK]
Hint: Remember ! reverses boolean, so !false = true [OK]
Common Mistakes:
Ignoring the ! operator
Thinking false && true is true
Confusing output strings with boolean values
4.
Find the error in this C# code snippet:
bool x = true;
if (x && !x) {
Console.WriteLine("True");
} else {
Console.WriteLine("False");
}
medium
A. Using single & instead of &&
B. Missing semicolon after if statement
C. Incorrect use of Console.WriteLine
D. Contradictory condition: x and not x can never be true
Solution
Step 1: Analyze the condition logic
The condition x && !x means x is true AND x is false at the same time, which is impossible.
Step 2: Check syntax correctness
The syntax is correct: && is used properly, semicolons and Console.WriteLine are fine.
Final Answer:
Contradictory condition: x and not x can never be true -> Option D
Quick Check:
True and not true = false always [OK]
Hint: Check if condition can ever be true logically [OK]
Common Mistakes:
Thinking condition can be true
Confusing & with &&
Looking for syntax errors when logic is the issue
5.
You want to write a C# switch expression that returns "Valid" only if age is between 18 and 30 inclusive, and hasID is true. Which pattern correctly uses logical operators?
Step 1: Understand switch pattern matching with tuples
The switch matches a tuple (age, hasID). To check conditions on both, use a when clause with logical operators.
Step 2: Analyze each option
var (a, id) when a >= 18 && a <= 30 && id correctly uses tuple deconstruction var (a, id) and checks a >= 18 && a <= 30 && id (where id is boolean). Others are invalid syntax or misuse logical operators.
Final Answer:
var (a, id) when a >= 18 && a <= 30 && id -> Option A
Quick Check:
Tuple pattern with when and && is correct [OK]
Hint: Use tuple deconstruction with when and && for multiple conditions [OK]
Common Mistakes:
Trying to use and inside tuple without when
Misplacing logical operators outside when clause
Not deconstructing tuple properly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.