Do not use a ? b : c as a statement [Conditional expression as statement: 1-4 points]
An expression of form a ? b : c should only be used to produce a value that the program uses. |
Do not write an explicit empty else [Empty else: 1-2 points]
Instead of
if(x > 0) { doSomething(); } else { }write if(x > 0) { doSomething(); } |
Do not use an if-statement with an empty statement preceding else [Empty then: 1-2 points]
Instead of
if(x > 0) { } else { doSomething(); }write if(x <= 0) { doSomething(); } A loop body should not have the form if(...) { continue; } else { ... }Statement continue; says to do the next iteration of the loop. But that is what the program would normally do at the end of the loop body. |
Do not force a boolean expression to be a test where that is not appropriate. [Boolean force: 1 point]
Suppose that E is an expression of type bool. Statement
if(E) { return true; } else { return false; }is equivalent to return E.If it is appropriate to treat a boolean expression in a way similarly to an arithmetic expression (as a value), then do so. It yields simpler and more efficient programs. |
Do not use conditions that are always true or always false [Constant condition: 1-2 points]
Do not use an if-statement whose condition
is always true or always false, except strictly
for debugging or code-checking purposes. For example, if
at a particular place it is not possible for
i and k to have the same value, then
do not say
if(i == k) { ... } |
Do not use redundant tests in if-statements [Redundant test: 1-2 points]
The else part of an if-statement is done if the
condition being tested is false. Do not test
whether it is false. For example,
if(x > 0) { step1(); } else if(x <= 0) { step2(); }should be replaced by if(x > 0) { step1(); } else { step2(); } |
If code is only performed by one branch of an if-statement, then it must be written inside that branch [Branch separation: 1 point]
Look at the following function definition.
int demo(int x) { int y; if(x > 0) { y = x + 1; } else { return -x; } return y; }Notice that statement return y can only be performed when x > 0. Moving it into the if-statement yields int demo(int x) { int y; if(x > 0) { y = x + 1; return y; } else { return -x; } }A better form is int demo(int x) { if(x > 0) { return x + 1; } else { return -x; } } |