Lec 04 - Conditionals
Slides:
Conditional Statement
Skipping else
else
We do not write an else
after a return
statement, since it is redundant. For example,
if (<a>)
return <x>;
if (<b>)
return <y>;
Logical Expression
Logical Operators
In C, we cannot chain the comparison operators together. For example, the following is prohibitted.
1995 <= birth_year <= 2005
Short-Circuiting
When evaluating the logical expressions that involve &&
and ||
, C uses "short-circuiting". If the program already knows, for sure, that a logical expression is true or false, there is no need to continue the evaluation. The corresponding true
or false
value will be returned.
The two cases of shorting-circuiting used with logical operators:
<a> || <b>
: If<a>
is true,<b>
won't be evaluated and the expression will return true. Otherwise, it will evaluate<b>
.<a> && <b>
: If<a>
is false,<b>
won't be evaluated and the expression will return false. Otherwise, it will evaluate<b>
.
Another reason to keep short-circuiting in mind is that the order of the logical expressions matter: we would want to put the logical expression that involves more work in the second half of the expression. Take the following example:
if (number < 100000 && is_prime(number)) {
:
}
Checking whether a number is below 100,000 is easier than checking if a number is prime. So, we can skip checking for primality if the number
is too big. Compare this to:
if (is_prime(number) && number < 100000) {
:
}
Suppose number
is a gigantic integer, then we would have spent lots of effort checking if number
is a prime, only to find out that it is too big anyway!
Assertion
An assertion is a logical expression that must always be true for the program to be correct.
Last updated