1.12. Worked Example: Boolean RelationsΒΆ
Subgoals for evaluating an assignment statement
Determine resultant data type of expression
Update variable for pre-increment or pre-decrement operators (side effect)
Evaluate arithmetic expression according to operator precedence
If an assignment statement (=), is Left Hand Side (LHS) a variable? Check data type of value against data type of variable.
Update variable for post-increment or post-decrement operators (side effect)
Given the following code snippet, evaluate the final statement (the last line). If invalid, give the reason. If valid, what value is assigned to the variable?
int alpha = 42, beta = 1, gamma = 5;
boolean result;
result = beta <= gamma && gamma <= alpha;
SG1 : Determine resultant data type of expression
First, note that alpha
, beta
, and gamma
are all integers.
In the final statement, the <=
operator is valid to compare primitive types, and produces boolean results, which are then used with the &&
operator to produce one final boolean.
(You may wish to keep a precedence and associativity reference handy, until you have memorized the order of operations for boolean operators.)
SG2: Update variables for any pre-increment or pre-decrement operators (side effects)
NOT USED IN THIS EXAMPLE
SG3: Evaluate arithmetic expression according to operator precedence
Substitute the values for the variables on the RHS and evaluate according to the order of operations.
beta <= gamma && gamma <= alpha
1 <= 5 && 5 <= 42
true && true
true
SG4: If an assignment statement (=), is Left Hand Side (LHS) a variable? Check data type of value against data type of variable.
The LHS is a variable of type boolean
, and the RHS is type boolean
. This is valid.
SG5: Update variable for post-increment or post-decrement operators (side effect)
NOT USED IN THIS EXAMPLE
Practice Pages