# Java Notes

# 'if' Statement - 'else if' style

## Series of tests

It is common to make a series of tests on a value, where the `else` part contains only another `if` statement. If you use indentation for the else part, it isn't easy to see that these are really a series of tests which are similar. It is better to write them at the same indentation level by writing the `if` on the same line as the `else`.

## Example -- series of tests - cascading ifs

This code is correctly indented, but ugly and hard to read. It also can go very far to the right if there are many tests.

    if (score < 35) {
        g.setColor(Color.MAGENTA);
    } else {
        if (score < 50) {
            g.setColor(Color.RED);
        } else {
            if (score < 60) {
                g.setColor(Color.ORANGE);
            } else  {
                if (score < 80) {
                    g.setColor(Color.YELLOW);
                } else {
                    g.setColor(Color.GREEN);
                }
            }
        }
    }

## Example -- using 'else if' style for formatting

Here is the same example, using a style of writing the `if` immediately after the `else`. This is a common exception to the indenting rules, because it results in more readable programs. Note that it makes use of the rule that a single statement in one of the Java clauses doesn't need braces.

    if (score < 35) {
        g.setColor(Color.MAGENTA);
    } else if (score < 50) {
        g.setColor(Color.RED);
    } else if (score < 60) {
        g.setColor(Color.ORANGE);
    } else if (score < 80) {
        g.setColor(Color.YELLOW);
    } else {
        g.setColor(Color.GREEN);
    }

## Other languages

Some programming languages recognize this common construction with a special elseif keyword. Although it is hardly necessary, this kind of small touch can make a language a little nicer to use. The Java language designers are very conservative about adding keywords to the language, so don't expect it.