Self Answer Key: IF Statement Quiz
Since a = 20 and b = 5, the first if statment will compare true and the first branch will be taken setting b to the new value of 2 * b or 10.
The first if looking at c will compare c (10) greater than b (10) and since 10 is not greater than 10 the result is false and the if statement block is not executed.
The second if looking at c will compare c (10) as equal to b (10) the result is true and the if statement block is executed and c is set to 0.
The final if looking at c will compare c (now 0) as less than b (10) the result is true and the if statement is executed leaving c set to 5.4 as its final value.
Is this correct? No. The statement of desired outcome defines what the variable c will be set to depending on it's value. Starting value is implied. But the second if statement changes value of c and then tests c with the third if statement which would not have been true if c had it's starting value.
Coding if statements in a stack like the example opens the door to problems. In this case, the second if operates correctly and sets the value of c to 0 as desired. Based on the statement of outcome we are done. However, since the if statements are in a stack we proceed to look at the next if statement with the new value of c.
Here is the correct code:
float a = 20; float b = 5; float c = 10; if (a > b) { b = 2 * b; } else { b = 0; } if ( c > b) { c = 100; } else if (c == b) { c = 0; } else if (c < b) { c = 5.4; }
This code will leave c = 0 which is correct based on the starting value of c = 10.
Click Next for a second quiz on if statements.