Relational patterns help you check if a value is less than, greater than, or equal to another value in a simple way.
When you want to check if a number is bigger or smaller than another number.
When you want to run different code depending on a value's size.
When you want to make your code easier to read by using clear comparisons.
When you want to use pattern matching with conditions in a switch or if statement.
Syntax
C Sharp (C#)
value is < constant
value is <= constant
value is > constant
value is >= constant
Relational patterns are used with the is keyword in C#.
You can use them inside switch statements or if statements.
Examples
This checks if number is greater than 5 and prints a message if true.
C Sharp (C#)
int number = 10;
if (number is > 5)
{
Console.WriteLine("Number is greater than 5");
}
This uses relational patterns in a switch to print age groups.
C Sharp (C#)
int age = 18;
switch (age)
{
case < 13:
Console.WriteLine("Child");
break;
case >= 13 and < 20:
Console.WriteLine("Teenager");
break;
default:
Console.WriteLine("Adult");
break;
}
Sample Program
This program checks the temperature and prints a message based on its value using relational patterns.
C Sharp (C#)
using System;
class Program
{
staticvoid Main()
{
int temperature = 30;
if (temperature is < 0)
{
Console.WriteLine("Freezing cold");
}
elseif (temperature is >= 0 and < 20)
{
Console.WriteLine("Cool weather");
}
elseif (temperature is >= 20 and < 30)
{
Console.WriteLine("Warm weather");
}
else
{
Console.WriteLine("Hot weather");
}
}
}
OutputSuccess
Important Notes
You can combine relational patterns with and and or for more complex checks.
Relational patterns make your code easier to read compared to using multiple comparison operators.
Summary
Relational patterns let you compare values simply inside is expressions.
They work well in if statements and switch cases.
Use them to write clear and readable conditions based on value comparisons.
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
Step 1: Understand the relational pattern syntax
The pattern is > 10 checks if a value is greater than 10.
Step 2: Compare with other options
Options A, B, and D check less than, equality, or inequality, which are different from > 10.
Final Answer:
If a value is greater than 10 -> Option A
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?
The relational pattern syntax uses is followed by the operator and value without spaces inside the operator, like is <= 5.
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.
Final Answer:
if (n is <= 5) { } -> Option A
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
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.
Step 2: Determine which branch runs
Because the condition is true, the Console.WriteLine("In range") runs, printing "In range".
Final Answer:
In range -> Option C
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
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:.
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.
Final Answer:
The pattern 'is > 90' should be 'case > 90:' without 'is' -> Option D
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?