📖 Scenario: You are working on a simple script to check if a number is even or odd. This is like checking if a number is divisible by 2 without any remainder, which is something you might do when sorting items into two groups.
🎯 Goal: Build a PowerShell script that uses the ternary operator to decide if a number is even or odd and then prints the result.
📋 What You'll Learn
Create a variable called number with the value 7
Create a variable called result that uses the ternary operator to check if number is even or odd
Print the result variable
💡 Why This Matters
🌍 Real World
Checking conditions quickly and assigning values based on those conditions is common in scripts that automate tasks, like sorting files or deciding what action to take.
💼 Career
Understanding the ternary operator helps you write concise and readable scripts, which is valuable for system administrators and automation engineers.
Progress0 / 4 steps
1
Create the number variable
Create a variable called number and set it to 7.
PowerShell
Hint
Use = to assign the value 7 to the variable number.
2
Add the ternary operator to check even or odd
Create a variable called result that uses the ternary operator to check if number % 2 equals 0. If yes, set result to 'Even', otherwise set it to 'Odd'.
PowerShell
Hint
Use $number % 2 -eq 0 ? 'Even' : 'Odd' syntax for the ternary operator in PowerShell 7+.
3
Print the result
Write a line to print the value of the result variable.
PowerShell
Hint
Use Write-Output to display the value of $result.
4
Test with a different number
Change the value of number to 10 and print the result again using the ternary operator.
PowerShell
Hint
Assign 10 to number, then use the ternary operator again to update result, and print it.
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
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.
Step 2: Identify its purpose
It evaluates the condition and returns the true-value if the condition is true, otherwise the false-value.
Final Answer:
It chooses one of two values based on a condition. -> Option B
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
Step 1: Recall the ternary operator syntax
The ternary operator uses the format: condition ? true-value : false-value.
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.
The condition is $age -ge 18, which means age greater or equal to 18. Since $age is 20, the condition is true.
Step 2: Apply ternary operator
Because the condition is true, the ternary operator returns 'Adult'.
Final Answer:
Adult -> Option C
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
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.
Step 2: Identify the error in the code
The code uses two question marks '?' but misses the colon ':'. This breaks the syntax.
Final Answer:
Missing colon ':' between true and false values. -> Option A
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
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.
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.