Ternary operator

Leap
Leap in Tcl
expr {$year % 100 == 0 ? $year % 400 == 0 : $year % 4 == 0}

A conditional operator, also known as a "ternary conditional operator", or just "ternary operator", is a very condensed "if-then-else" operator. This structure uses a maximum of two checks to determine if a year is a leap year.

It starts by testing the outlier condition of the year being evenly divisible by 100. It does this by using the remainder operator: year % 100 == 0. If the year is evenly divisible by 100, then the expression is true, and the ternary operator returns the result of testing if the year is evenly divisible by 400. If the year is not evenly divisible by 100, then the expression is false, and the ternary operator returns the result of testing if the year is evenly divisible by 4.

year divisible by 4 not divisible by 100 divisible by 400 result
2020 false not evaluated true true
2019 false not evaluated false false
2000 true true not evaluated true
1900 true false not evaluated false

Although it uses a maximum of two checks, the ternary operator tests an outlier condition first, making it less efficient than another approach that would first test if the year is evenly divisible by 4, which is more likely than the year being evenly divisible by 100.

6th Nov 2024 · Found it useful?