return
Can Return An Expression
There are several ways how you could write the is_between
function on the previous page. First of all, you could've avoided using any boolean operators at all:
int is_between(int x, int a, int b) {
if (x < a) {
return 0; /* remember: return exits the function */
}
if (x > b) {
return 0;
}
return 1;
}
You could've combined that into one expression with ||
or with &&
– the following implementations do the same thing:
int is_between(int x, int a, int b) {
if (x < a || x > b) {
return 0;
}
return 1;
}
int is_between(int x, int a, int b) {
if (x >= a && x <= b) {
return 1;
}
return 0;
}
But one thing I haven't explicitly mentioned above is that you can avoid using if
by writing a single return
statement:
int is_between(int x, int a, int b) {
return (x >= a && x <= b);
}
The way it works is: as you remember, each comparison operator results in 0 or 1, and the &&
will evaluate to 1 (a true value) if it sees a true value on both sides.
Depending on a situation, it might be easier to squeeze the function logic into a single return
statement, or have multiple conditions with individual return
statements.