Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Relational patterns in C Sharp (C#) - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Relational patterns
Start with a value
↓
Apply relational pattern
↓
Check if value matches condition
Yes No↓
Execute True
↓
End
Relational patterns check if a value meets a condition like >, <, >=, <=, ==, or != and then choose what to do based on that.
Execution Sample
C Sharp (C#)
int x = 7;
if (x is > 5 and < 10)
{
    Console.WriteLine("x is between 6 and 9");
}
This code checks if x is greater than 5 and less than 10, then prints a message.
Execution Table
StepVariable xCondition CheckedResultBranch TakenOutput
17x > 5TrueContinue
27x < 10TrueExecute True branchx is between 6 and 9
37End---
💡 Both conditions true, so the true branch runs and then execution ends.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
x7777
Key Moments - 2 Insights
Why do we check both conditions separately in the relational pattern?
Because the pattern uses 'and', both conditions must be true for the whole pattern to be true, as shown in steps 1 and 2 of the execution_table.
What happens if the first condition is false?
The second condition is not checked and the false branch runs, but in this example, the first condition is true, so both are checked.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the result of the condition 'x > 5' at step 1?
ANot evaluated
BTrue
CFalse
DError
💡 Hint
Check the 'Result' column at step 1 in the execution_table.
At which step does the program decide to execute the true branch?
AStep 2
BStep 1
CStep 3
DBefore step 1
💡 Hint
Look at the 'Branch Taken' column in the execution_table.
If x was 4, how would the execution_table change at step 1?
ACondition 'x > 5' would be True
BCondition 'x < 10' would be False
CCondition 'x > 5' would be False
DOutput would be 'x is between 6 and 9'
💡 Hint
Refer to the 'Condition Checked' and 'Result' columns for step 1.
Concept Snapshot
Relational patterns check if a value meets a condition like >, <, >=, <=, ==, or !=.
Syntax example: if (x is > 5 and < 10) { ... }
Both conditions must be true if combined with 'and'.
Used to simplify multiple comparisons in one pattern.
Executes code based on whether the pattern matches.
Full Transcript
Relational patterns in C# let you check if a value meets conditions like greater than or less than. The code example shows checking if x is greater than 5 and less than 10. The execution flow first checks if x > 5, which is true for x=7, then checks if x < 10, also true. Because both are true, the program runs the true branch and prints the message. Variables stay the same during checks. If any condition fails, the false branch runs instead. This helps write clear and simple condition checks.

Practice

(1/5)
1. What does the relational pattern is > 10 check in C#?
easy
A. If a value is greater than 10
B. If a value is equal to 10
C. If a value is less than 10
D. If a value is not equal to 10

Solution

  1. Step 1: Understand the relational pattern syntax

    The pattern is > 10 checks if a value is greater than 10.
  2. Step 2: Compare with other options

    Options A, B, and D check less than, equality, or inequality, which are different from > 10.
  3. Final Answer:

    If a value is greater than 10 -> Option A
  4. Quick Check:

    Relational pattern is > 10 means greater than 10 [OK]
Hint: Relational patterns use normal math signs like >, <, == [OK]
Common Mistakes:
  • Confusing > with >= or ==.
  • Thinking it checks equality instead of comparison.
  • Mixing up less than and greater than signs.
2. Which of the following is the correct syntax to check if an integer n is less than or equal to 5 using a relational pattern?
easy
A. if (n is <= 5) { }
B. if (n <= 5) { }
C. if (n is < = 5) { }
D. if (n is <=5) { }

Solution

  1. Step 1: Identify correct relational pattern syntax

    The relational pattern syntax uses is followed by the operator and value without spaces inside the operator, like is <= 5.
  2. Step 2: Check each option

    if (n is <= 5) { } uses correct syntax: if (n is <= 5). if (n <= 5) { } is normal comparison, not a relational pattern. if (n is < = 5) { } has a space between < and = which is invalid. if (n is <=5) { } misses a space after is, which is required.
  3. Final Answer:

    if (n is <= 5) { } -> Option A
  4. Quick Check:

    Relational pattern syntax: is <= value [OK]
Hint: Relational patterns need 'is' then operator with no spaces inside operator [OK]
Common Mistakes:
  • Using normal comparison without 'is'.
  • Adding spaces inside the operator like '< ='.
  • Omitting space after 'is'.
3. What will be the output of this C# code?
int x = 7;
if (x is >= 5 and < 10)
    Console.WriteLine("In range");
else
    Console.WriteLine("Out of range");
medium
A. No output
B. Out of range
C. In range
D. Compilation error

Solution

  1. Step 1: Evaluate the relational pattern condition

    The condition x is >= 5 and < 10 checks if x is between 5 and 9 inclusive. Since x = 7, it satisfies both parts.
  2. Step 2: Determine which branch runs

    Because the condition is true, the Console.WriteLine("In range") runs, printing "In range".
  3. Final Answer:

    In range -> Option C
  4. Quick Check:

    7 is between 5 and 10, so output is "In range" [OK]
Hint: Check both parts of 'and' relational pattern carefully [OK]
Common Mistakes:
  • Thinking 'and' means 'or'.
  • Ignoring one part of the condition.
  • Assuming syntax error due to 'and'.
4. Identify the error in this code snippet using relational patterns:
int score = 85;
switch (score)
{
    case is > 90:
        Console.WriteLine("Excellent");
        break;
    case is >= 80 and < 90:
        Console.WriteLine("Good");
        break;
    default:
        Console.WriteLine("Average");
        break;
}
medium
A. The 'and' keyword is not allowed in switch case patterns
B. Missing braces around case blocks
C. Relational patterns cannot be used in switch cases
D. The pattern 'is > 90' should be 'case > 90:' without 'is'

Solution

  1. Step 1: Identify the syntax error in switch case patterns

    Relational patterns in switch statements use syntax like case > 90:, without the is keyword. The code incorrectly uses case is > 90: and case is >= 80 and < 90:.
  2. Step 2: Evaluate the options

    The 'and' keyword is not allowed in switch case patterns is incorrect; and is allowed to combine patterns like case >= 80 and < 90:. The pattern 'is > 90' should be 'case > 90:' without 'is' correctly identifies the misuse of is. Relational patterns cannot be used in switch cases is false; relational patterns are supported in switch cases. Missing braces around case blocks is wrong; braces are not required around case contents.
  3. Final Answer:

    The pattern 'is > 90' should be 'case > 90:' without 'is' -> Option D
  4. Quick Check:

    Switch case relational pattern: case > value, no is [OK]
Hint: No 'is' keyword needed for relational patterns in switch cases [OK]
Common Mistakes:
  • Adding 'is' before relational operators in switch cases.
  • Thinking 'and' cannot combine patterns in switch cases.
  • Confusing switch statements with 'is' patterns.
5. You want to write a method that returns "Child", "Teen", or "Adult" based on age using relational patterns. Which of these switch expressions correctly implements this?
string GetAgeGroup(int age) => age switch
{
    < 13 => "Child",
    >= 13 and < 20 => "Teen",
    _ => "Adult"
};
hard
A. Replace 'and' with '&&' in the second pattern
B. Correct as is
C. Use nested if statements instead of switch
D. Add parentheses around '>= 13 and < 20'

Solution

  1. Step 1: Analyze the switch expression with relational patterns

    The switch expression uses relational patterns correctly: < 13 for "Child", combined pattern >= 13 and < 20 for "Teen", and default for "Adult".
  2. Step 2: Confirm syntax correctness

    The 'and' keyword is valid in switch expressions for combining patterns. No parentheses or '&&' are needed here.
  3. Final Answer:

    Correct as is -> Option B
  4. Quick Check:

    Switch expressions support 'and' for combined relational patterns [OK]
Hint: Use 'and' to combine relational patterns in switch expressions [OK]
Common Mistakes:
  • Replacing 'and' with '&&' which is invalid in patterns.
  • Adding unnecessary parentheses.
  • Thinking switch expressions don't support relational patterns.
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