Bird
Raised Fist0
PowerShellscripting~20 mins

Comparison operators (-eq, -ne, -gt, -lt) in PowerShell - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PowerShell Comparison Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this PowerShell comparison?
Consider the following PowerShell code snippet. What will it output?
PowerShell
$a = 5
$b = 10
if ($a -lt $b) { "Less" } else { "Not Less" }
ANot Less
BLess
CTrue
DFalse
Attempts:
2 left
💡 Hint
Remember that -lt means 'less than'.
💻 Command Output
intermediate
2:00remaining
What does this script print?
What will this PowerShell script print to the console?
PowerShell
$x = 7
$y = 7
if ($x -ne $y) { "Different" } else { "Same" }
ASame
BDifferent
CTrue
DFalse
Attempts:
2 left
💡 Hint
The -ne operator means 'not equal'.
💻 Command Output
advanced
2:00remaining
What is the output of this comparison chain?
What will this PowerShell code output?
PowerShell
$num = 15
if ($num -gt 10 -and $num -lt 20) { "In range" } else { "Out of range" }
AIn range
BTrue
COut of range
DFalse
Attempts:
2 left
💡 Hint
Check if 15 is greater than 10 and less than 20.
💻 Command Output
advanced
2:00remaining
What error or output does this script produce?
What happens when you run this PowerShell code?
PowerShell
$val = '5'
if ($val -gt 3) { "Greater" } else { "Not Greater" }
AFalse
BNot Greater
CCannot compare values of different types
DGreater
Attempts:
2 left
💡 Hint
PowerShell tries to convert strings to numbers when comparing.
💻 Command Output
expert
3:00remaining
What is the output of this script with mixed comparisons?
Analyze this PowerShell script and select the output it produces.
PowerShell
$a = 8
$b = 8
$c = 10
if ($a -eq $b -and $c -lt 5) { "Match and less" } elseif ($a -eq $b -and $c -gt 5) { "Match and greater" } else { "No match" }
AError: ambiguous condition
BMatch and less
CMatch and greater
DNo match
Attempts:
2 left
💡 Hint
Check both conditions carefully in order.

Practice

(1/5)
1. Which PowerShell operator checks if two values are equal?
easy
A. -eq
B. -ne
C. -gt
D. -lt

Solution

  1. Step 1: Understand the meaning of each operator

    -eq means equals, -ne means not equals, -gt means greater than, -lt means less than.
  2. Step 2: Identify the operator for equality

    The operator that checks if two values are equal is -eq.
  3. Final Answer:

    -eq -> Option A
  4. Quick Check:

    Equals operator = -eq [OK]
Hint: Remember: eq means equal, ne means not equal [OK]
Common Mistakes:
  • Confusing -eq with -ne
  • Mixing -gt and -lt
  • Using == instead of -eq
2. Which of the following is the correct syntax to check if variable $a is greater than 10 in PowerShell?
easy
A. if ($a -gt 10) { }
B. if ($a > 10) { }
C. if ($a -lt 10) { }
D. if ($a -eq 10) { }

Solution

  1. Step 1: Recall PowerShell comparison syntax

    PowerShell uses -gt for greater than, not > like some other languages.
  2. Step 2: Match the correct operator

    The correct syntax to check if $a is greater than 10 is if ($a -gt 10) { }.
  3. Final Answer:

    if ($a -gt 10) { } -> Option A
  4. Quick Check:

    Greater than operator = -gt [OK]
Hint: Use -gt for greater than, not > in PowerShell [OK]
Common Mistakes:
  • Using > instead of -gt
  • Confusing -lt with -gt
  • Missing parentheses in if statement
3. What will be the output of this PowerShell code?
$x = 5
if ($x -ne 5) { 'No' } else { 'Yes' }
medium
A. 5
B. No
C. Yes
D. False

Solution

  1. Step 1: Evaluate the condition $x -ne 5

    $x is 5, so $x -ne 5 means 5 not equal to 5, which is False.
  2. Step 2: Determine which block runs

    Since condition is False, the else block runs, outputting 'Yes'.
  3. Final Answer:

    Yes -> Option C
  4. Quick Check:

    5 not equal 5 is False, so else runs [OK]
Hint: -ne means not equal; false triggers else block [OK]
Common Mistakes:
  • Thinking -ne means equal
  • Confusing output with variable value
  • Ignoring else block
4. Identify the error in this PowerShell snippet:
$num = 10
if ($num -gt 5) { 'Greater' } elseif ($num -lt 5) { 'Smaller' } else { 'Equal' }
medium
A. Missing closing brace for if block
B. No error, code runs correctly
C. Incorrect use of elseif instead of else if
D. Using -gt instead of > operator

Solution

  1. Step 1: Check syntax of if-elseif-else

    PowerShell supports elseif as one word; braces are balanced.
  2. Step 2: Verify operators and structure

    -gt and -lt are correct operators; no syntax errors present.
  3. Final Answer:

    No error, code runs correctly -> Option B
  4. Quick Check:

    elseif is valid in PowerShell [OK]
Hint: PowerShell uses elseif as one word, not else if [OK]
Common Mistakes:
  • Thinking elseif is invalid
  • Expecting > instead of -gt
  • Missing braces confusion
5. You want to write a PowerShell script that prints 'Valid' only if a variable $score is greater than or equal to 70. Which code snippet correctly uses comparison operators to achieve this?
hard
A. if ($score -gt 70) { 'Valid' } else { 'Invalid' }
B. if ($score -lt 70) { 'Valid' } else { 'Invalid' }
C. if ($score -eq 70) { 'Valid' } else { 'Invalid' }
D. if ($score -ge 70) { 'Valid' } else { 'Invalid' }

Solution

  1. Step 1: Understand the requirement

    We want to check if $score is greater than or equal to 70.
  2. Step 2: Identify the correct operator

    -ge means greater than or equal to, which matches the requirement.
  3. Final Answer:

    if ($score -ge 70) { 'Valid' } else { 'Invalid' } -> Option D
  4. Quick Check:

    Greater or equal operator = -ge [OK]
Hint: Use -ge for greater or equal comparisons [OK]
Common Mistakes:
  • Using -gt excludes 70
  • Using -eq only matches exactly 70
  • Using -lt reverses 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