Bird
Raised Fist0
PowerShellscripting~5 mins

Ternary operator (PowerShell 7+)

Choose your learning style10 modes available
Introduction
The ternary operator lets you choose between two values quickly based on a condition, making your code shorter and easier to read.
You want to set a variable to one value if a condition is true, and another if false.
You need a quick decision inside a script without writing full if-else blocks.
You want to simplify simple conditional assignments in your automation scripts.
Syntax
PowerShell
condition ? value_if_true : value_if_false
The condition is checked first; if true, the first value is used, else the second.
This operator is available in PowerShell 7 and later versions.
Examples
Sets $status to 'Adult' if $age is 18 or more, otherwise 'Minor'.
PowerShell
$age = 20
$status = $age -ge 18 ? 'Adult' : 'Minor'
$status
Checks if $number is even or odd and stores the result.
PowerShell
$number = 5
$result = ($number % 2) -eq 0 ? 'Even' : 'Odd'
$result
Chooses an activity based on whether it is sunny.
PowerShell
$isSunny = $true
$activity = $isSunny ? 'Go outside' : 'Stay inside'
$activity
Sample Program
This script checks if the score is 60 or more. If yes, it sets grade to 'Pass', else 'Fail'. Then it prints both values.
PowerShell
$score = 75
$grade = $score -ge 60 ? 'Pass' : 'Fail'
Write-Output "Score: $score"
Write-Output "Result: $grade"
OutputSuccess
Important Notes
The ternary operator is a shortcut for simple if-else assignments.
Use parentheses to clarify complex conditions if needed.
Avoid using ternary for very long or nested conditions to keep code readable.
Summary
The ternary operator helps make quick decisions in one line.
It works like a mini if-else: condition ? true-value : false-value.
Available in PowerShell 7+, it simplifies your scripts and saves space.

Practice

(1/5)
1. What does the ternary operator condition ? true-value : false-value do in PowerShell 7+?
easy
A. It comments out a line of code.
B. It chooses one of two values based on a condition.
C. It defines a function with two parameters.
D. It creates a loop that runs twice.

Solution

  1. Step 1: Understand the ternary operator structure

    The ternary operator uses a condition followed by a question mark, then a value if true, a colon, and a value if false.
  2. Step 2: Identify its purpose

    It evaluates the condition and returns the true-value if the condition is true, otherwise the false-value.
  3. Final Answer:

    It chooses one of two values based on a condition. -> Option B
  4. Quick Check:

    Ternary operator = choose value based on condition [OK]
Hint: Think: condition ? yes : no picks one value fast [OK]
Common Mistakes:
  • Confusing ternary with loops
  • Thinking it defines functions
  • Assuming it comments code
2. Which of the following is the correct syntax for the ternary operator in PowerShell 7+?
easy
A. condition ? true-value : false-value
B. if (condition) { true-value } else { false-value }
C. condition ? true-value, false-value
D. condition : true-value ? false-value

Solution

  1. Step 1: Recall the ternary operator syntax

    The ternary operator uses the format: condition ? true-value : false-value.
  2. Step 2: Compare options

    'if (condition) { true-value } else { false-value }' is an if-else statement, not ternary. 'condition ? true-value, false-value' uses comma instead of colon. 'condition : true-value ? false-value' has question mark and colon swapped. Only 'condition ? true-value : false-value' matches exactly.
  3. Final Answer:

    condition ? true-value : false-value -> Option A
  4. Quick Check:

    Correct ternary syntax = condition ? true : false [OK]
Hint: Look for question mark then colon in correct order [OK]
Common Mistakes:
  • Using commas instead of colon
  • Swapping question mark and colon
  • Using if-else instead of ternary
3. What is the output of this PowerShell code?
$age = 20
$result = $age -ge 18 ? 'Adult' : 'Minor'
Write-Output $result
medium
A. True
B. Minor
C. Adult
D. False

Solution

  1. Step 1: Evaluate the condition

    The condition is $age -ge 18, which means age greater or equal to 18. Since $age is 20, the condition is true.
  2. Step 2: Apply ternary operator

    Because the condition is true, the ternary operator returns 'Adult'.
  3. Final Answer:

    Adult -> Option C
  4. Quick Check:

    20 >= 18 ? 'Adult' : 'Minor' = Adult [OK]
Hint: Check condition result first, then pick true or false value [OK]
Common Mistakes:
  • Confusing true and false branches
  • Misreading the comparison operator
  • Expecting boolean output instead of string
4. Identify the error in this PowerShell ternary expression:
$score = 75
$grade = $score -gt 90 ? 'A' ? 'B'
medium
A. Missing colon ':' between true and false values.
B. Using wrong comparison operator '-gt'.
C. Variables must be declared with 'var' keyword.
D. Ternary operator cannot be used with strings.

Solution

  1. Step 1: Check ternary operator syntax

    The ternary operator requires a question mark '?' after the condition, then the true-value, then a colon ':', then the false-value.
  2. Step 2: Identify the error in the code

    The code uses two question marks '?' but misses the colon ':'. This breaks the syntax.
  3. Final Answer:

    Missing colon ':' between true and false values. -> Option A
  4. Quick Check:

    Correct ternary = condition ? true : false [OK]
Hint: Remember ternary needs '?' then ':' in order [OK]
Common Mistakes:
  • Using '?' twice without ':'
  • Confusing comparison operators
  • Thinking variables need 'var' keyword
5. You want to assign a variable $status to 'Pass' if $score is 50 or more, 'Fail' otherwise. Which PowerShell ternary expression correctly does this?
hard
A. $status = if ($score -ge 50) { 'Pass' } else { 'Fail' }
B. $status = $score >= 50 ? 'Pass' : 'Fail'
C. $status = $score ? 'Pass' : 'Fail'
D. $status = $score -ge 50 ? 'Pass' : 'Fail'

Solution

  1. Step 1: Understand the condition and syntax

    The condition is $score -ge 50 (greater or equal 50). PowerShell uses '-ge' for numeric comparisons, and ternary syntax is condition ? true-value : false-value.
  2. Step 2: Evaluate options

    $status = $score -ge 50 ? 'Pass' : 'Fail' uses correct comparison operator '-ge' and correct ternary syntax. $status = $score >= 50 ? 'Pass' : 'Fail' uses '>=', which is invalid in PowerShell. $status = if ($score -ge 50) { 'Pass' } else { 'Fail' } uses if-else, not ternary. $status = $score ? 'Pass' : 'Fail' uses $score as condition directly, which is incorrect.
  3. Final Answer:

    $status = $score -ge 50 ? 'Pass' : 'Fail' -> Option D
  4. Quick Check:

    PowerShell ternary with '-ge' = $status = $score -ge 50 ? 'Pass' : 'Fail' [OK]
Hint: Use '-ge' for numeric compare and '?' then ':' for ternary [OK]
Common Mistakes:
  • Using '>=', which is invalid in PowerShell
  • Using if-else instead of ternary
  • Using variable alone as condition
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