Lec 04 - Conditionals
Slides:
Conditional Statement
Skipping else
elseWe 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 <= 2005Short-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